Flashhilfe.de - Flash Community

Einfache fragen (alles vergessen) [Flash 10]

 


AntwortenRegistrieren Seite1  

Surlick#1
Benutzerbild von Surlick
Beiträge: 3
Wohnort: hamburg
Registriert: Oct 2009

24.07.2012, 14:40

Hallo zusammen,

ich habe vor einigen Jahren mal einiges mit flash AS3 gemacht, und arbeite mich gerade wieder rein.

Ich habe mal eine, für euch wohl, simple frage:

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
25
26
27
28
29
30
31
32
33
package  {
     
     import flash.display.SimpleButton;
     import flash.events.*;
     
     
     
     public class iconblau extends SimpleButton {
        
        
        
        
        public function iconblau()
        {
           MovieClip(root).addEventListener(MouseEvent.MOUSE_DOWN,DragStart);
           MovieClip(root).addEventListener(MouseEvent.MOUSE_UP,DragStop);
           
        }// Ende Constructor/iconblau
   
        function DragStart(event:Event)
        {
           trace("Drag Started!");
           event.currentTarget.startDrag(false);
        }// Ende DragStart
      
        function DragStop(event:Event)
        {
           trace("Drag Stoped!");
           event.currentTarget.stopDrag();
        }// Ende DragStop
   }// Ende Class
   
}// Ende package



Ich habe mehrere Instanzen des Icons auf meinen Bildschirm, wenn ich nun den drag starte durch die Maus, bewegt sich meine komplette Bühne. Ich möchte jedoch das er nur genau diese instanz bewegt. Also dieses eine Icon.

Ich denke mal es liegt am MovieClip(root).addEventListener(MouseEvent.MOUSE_DOWN,DragStart);

Wie kann ich dem Programm sagen das er diese instanz nur bewegen soll ? Ich habe das früher schon mal gemacht, jedoch fast alles vergessen.

MFG
Surlick
Schlagwörter: Class, Drag and Drop
vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

24.07.2012, 20:49

Hallo und willkommen im Forum,

mit root greifst du auf die Hauptebene deines Filmes zu, somit ALLE instanzen.
Einfach ein "this" rein setzen (Kannst dann auch MovieClip()) weg lassen und es sollte gehen - dann wird nur die Ebene deines Icons bewegt!
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Surlick#3
Benutzerbild von Surlick
Beiträge: 3
Wohnort: hamburg
Registriert: Oct 2009

Themenautor/in

24.07.2012, 21:31

Danke erstmal.


Das war auch meine erste Idee mit "this."

Bekomme jedoch den Ausgabefehler:

Drag Started!
ReferenceError: Error #1069: Eigenschaft startDrag für iconblau nicht gefunden und es ist kein Standardwert vorhanden.
   at iconblau/DragStart()
Drag Stoped!
ReferenceError: Error #1069: Eigenschaft stopDrag für iconblau nicht gefunden und es ist kein Standardwert vorhanden.
   at iconblau/DragStop()




Ich habe die Schaltfläche unter Eigenschaften, "Export für ActionScript" aktiviert und als klasse "iconblau" angegeben.
Sebastian#4
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

25.07.2012, 18:12

SimpleButton unterstützt das draggen nicht.

Statt extends auf SimpleButton, musst Du Button nutzen.
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Surlick#5
Benutzerbild von Surlick
Beiträge: 3
Wohnort: hamburg
Registriert: Oct 2009

Themenautor/in

26.07.2012, 15:15

Button gibt es bei mir nicht, nur SimpleButton. (das sagt der Compiler mir zumindest, und ich habe sie auch nicht in der Tab entdeckt.)


Mal eine andere frage:

dokumentklasse
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
25
26
27
28
29
30
package 
{
     
     import flash.display.*;
     import flash.events.*;
     
     
     
     public class mtel extends MovieClip {
        
        
        public function mtel() {
           physik_btm.addEventListener(MouseEvent.MOUSE_DOWN,start_physik);
                    
           
        }// constructor code
      
           
        
        
        function start_physik(event:Event)
        {
           
           gotoAndPlay(11);
           
        }      
        
     }
     
}

So geht alles super. Der Button ist direkt auf der Bühne plaziert.


Jedoch...
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package 
{
     
     import flash.display.*;
     import flash.events.*;
     
     
     
     public class mtel extends MovieClip {
        
        
        public function mtel() {
           physik_btm.addEventListener(MouseEvent.MOUSE_DOWN,start_physik);
           astro.addEventListener(MouseEvent.MOUSE_DOWN,start_astro);
                    
           
        }// constructor code
      
           
        
        
        function start_physik(event:Event)
        {
           
           gotoAndPlay(11);
           
        }      
        function start_astro(event:Event)
        {
           
           gotoAndPlay(11);
           
        }      
        
     }
     
}




Sobald ich einen Zweiten Button hinzufüge bekomme ich folgenden Ausgabefehler:

TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
   at mtel()





Ich kann das beheben indem ich für jedem Button eine eigene Klasse anlege.
Etwa so:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package  {
     
     import flash.display.*;
     import flash.events.*;
     
     
     public class Astrophysik extends SimpleButton {
        
        
        public function Astrophysik() {
           MovieClip(root).astro.addEventListener(MouseEvent.MOUSE_DOWN,start_astro);
           
        }
        function start_astro(event:Event)
        {
           MovieClip(root).gotoAndPlay(20);
           
        }
        
     }
     
}


Ich habe jedoch insgesamt um die 30 Buttons, ich habe früher auch alle Buttons in einer Klasse gehabt. Kann mir einer sagen warum ich so eine Fehlermeldung bekomme ?
Geändert von Surlick am 26.07.12 um 15:16 Uhr

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de