1&1 DSL
Flashhilfe.de - Flash Community

Eigene Funktion in as Dateien auslagern [Flash 10]

Forum > ActionScript 3.0 > Eigene Funktion in as Dateien auslagern

 


AntwortenRegistrieren Seite1

 07.11.2009, 19:54 
Beiträge: 12
Registriert: Aug 2009

Eigene Funktion in as Dateien auslagern
Hallo,

ich habe ein Problem beim auslagern von funktionen in eine externe as datei,
ich habe eine funktion die später den movieclip von frame x bis frame y abspielen soll diese brauch ich immer wieder daher hab ich mir gedacht ich lager sie in eine externe datei aus nur nun sagt mir die ausgabe das meine Funktion keine Funktion sei.

die eine as datei
ActionScript:
1
2
3
4
function menuMouseOver(event:MouseEvent):void
{
event.target.playRange(1, 5);
}


die as datei mit der funktion drin
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package
{
   import flash.*:
   
   public class playRange extends MovieClip
   {
      public var startFrame:int;
      public var endFrame:int;
   
      public function playRange(startFrame, endFrame):void
      {
         this.gotoAndPlay(startFrame);
         this.addEventListener(Event.ENTER_FRAME, stopen);
      
         function stopen()
         {
            if (currentFrame == endFrame)
            {
               this.stop();
            }
         }
      }
   }
}


was ist falsch? habe sie natürlich importiert in der 1. as datei.
Ausgabe zeigt an:
ActionScript:
1
2
TypeError: Error #1006: playRange ist keine Funktion.
   at MethodInfo-26()


danke schonmal für die Hilfe
Geändert von Tyriis am 07.11.09 um 19:56 Uhr

 08.11.2009, 12:07Re1
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

Wo hast Du die Importiert, mit "import flash.*:" importierst Du nur die Flash eigenen Dateien.
Wenn die Function-Datei nur so aussieht wie gepostet, wirst die noch um Class und Start-Function erweitern müßen.
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
 08.11.2009, 17:40Re2
Beiträge: 12
Registriert: Aug 2009

Themenautor/in

Ok war vllt nicht richtig erklärt von mir also ich habe ein MovieClip Objekt in der Bibliothek, dieser hat 5 frames jeder ein eigenes Schlüsselbild.

nun erstelle ich eine neue Instance von dem MovieClip über die MainClass.as
dann will ich das dieser MovieClip beim draufklicken nur von vorgegebenen Frames abläuft und wieder stopt also nur frame 2-4 soll abgespielt werden.
daher hab ich eine neue Funktion dafür die playrange heisst diese möchte ich nun in eine neue Klasse auslagern da ich denke das ich diese funktion für andere aufgaben auch wieder brauchen kann, innerhalb dieses projekts aber auch inerhalb anderer Projekte.

so schaut meine MainClass.as aus selbes Verzeichnis wie die .fla
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package
{
   import flash.display.MovieClip;
   import flash.events.*;
   import playRange;

   public class MainClass extends MovieClip
   {      
      public function MainClass()
      {
         var my_btn:btn = new btn();
         my_btn.addEventListener(MouseEvent.CLICK, onClick);
         my_btn.buttonMode = true;
   
         function onClick()
         {
            my_btn.playRange(3, 5);
         }
            
         addChild(my_btn);
      }
   }
}


und so sieht meine playRange.as aus:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package
{
  import flash.*:
 
  public class playRange extends Function
  {
      public var startFrame:int;
      public var endFrame:int;
 
      public function playRange(startFrame, endFrame)
      {
        this.gotoAndPlay(startFrame);
        this.addEventListener(Event.ENTER_FRAME, stopen);
     
        function stopen():void
        {
            if (currentFrame == endFrame)
            {
              this.stop();
            }
        }
      }
  }
}


und nun sagt er mir halt das playRange keine Funktion ist wenn ich draufklicke.
muss ich die funktion noch registrieren oder wie binde ich die ein? das ich die ganz normal nutzen kann wie z.b. gotoAndPlay?

ActionScript:
1
2
TypeError: Error #1006: playRange ist keine Funktion.
   at MethodInfo-1()

warum ist es keine Funktion? wasn das sonst? oO

und das flash.* hab ich erstmal drin das mach ich am ende dann so das er nur das importiert was man braucht, weil das ganze noch erweitert werden soll.
Geändert von Tyriis am 08.11.09 um 17:46 Uhr

 
nicht sichtbar bei eingeloggten Mitgliedern
 08.11.2009, 20:12Re3
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

Vielleicht mal das Ziel in den Funktions--Aufruf packen.
playRange(my_btn,3, 5);
public function playRange(mb:MovcieClip,startFrame, endFrame)
      {
      mb.gotoAndPlay(startFrame);
        mb.addEventListener(Event.ENTER_FRAME, stopen);
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
 
Themen
Ähnliche Beiträge zum Thema
 
AntwortenRegistrieren Seite1

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de