{lang: 'de'}
Flashhilfe.de - Flash Community

Fehler 1009 ich verzweifle. [Flash 11]

 


AntwortenRegistrieren Seite1  

Mino1337#1
Benutzerbild von Mino1337
Beiträge: 3
Registriert: Feb 2016

24.02.2016, 00:14

Hallo,

Ich habe einen Movieclip welcher mir als Gegner in einem Flashspiel dienen soll. Deswegen hat er eine modifizierte Klasse von mir bekommen um den Funktionsumfang zu steigern und mir Schreibarbeit zu sparen (Weil ich ihn 100erte male instanzieren werde). Leider bekomme ich seid dem den Fehler 1009.

Hier einmal die Wichtigen teile meiner Klassen.


Das ist die Gegnerklasse welche eigentlich nur bestimmt wie die Gegner Aussehen. Der MC Figur ist das Gesammte, in diesem stecken die MC's Kopf,Oberkörper,Arme,Beine ect. und in zB. Kopf steckt nochmal Augen,Mund,Haare,Gesicht und im Gesicht stecken dann nochmal 4 MC's in welchen wieder 4 MC's stecken.

nur um euch zu zeigen wie tief die MC's verschachtelt sind. Und mit dieser Klasse soll man die einzelnen teile zusammenwürfeln können.

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package  {
     
     import flash.display.MovieClip;
     
     
     public class Figur extends MovieClip {
        
        private var hautfarbe:int;
        private var haarfarbe:int;
        private var frisur:int;
        private var gesicht:int;
        private var mund:int;
        private var augen:int;
        private var oberkörper:int;
        private var shirtfarbe:int;
        private var ärmelfarbe:int;
        private var oberarm:int;
        private var hand:int;
        private var schuhe:int;
        private var hosenfarbe:int;
        
        public function Figur() {
           this.hautfarbe = 1;
           this.haarfarbe = 1;
           this.frisur = 1;
           this.gesicht = 1;
           this.mund = 1;
           this.augen = 1;
           this.oberkörper = 1;
           this.shirtfarbe = 1;
           this.ärmelfarbe = 1;
           this.oberarm = 1;
           this.hand = 1;
           this.schuhe = 1;
           this.hosenfarbe = 1;
        }
        
        public function setHautfarbeVor():void{
           trace("Hautfarbe:"+ hautfarbe);
           trace("Gesicht:"+ gesicht);
           if(this.hautfarbe==4){
              this.hautfarbe=1;
           }else{
              this.hautfarbe += 1;
           }
           Aussehen();
        }
        
        public function setHautfarbeZurück():void{
           trace("Hautfarbe:"+ hautfarbe);
           trace("Gesicht:"+ gesicht);
           if(this.hautfarbe==1){
              this.hautfarbe=4;
           }else{
              this.hautfarbe -= 1;
           }
           Aussehen();
        }
        
        public function setGesichtVor():void{
           trace("Hautfarbe:"+ hautfarbe);
           trace("Gesicht:"+ gesicht);
           if(this.gesicht==4){
              this.gesicht=1;
           }else{
              this.gesicht += 1;
           }
           Aussehen();
        }
        
        public function setGesichtZurück():void{
           if(this.gesicht==1){
              this.gesicht=4;
           }else{
              this.gesicht -= 1;
           }
           Aussehen();
           }
     
        public function Aussehen():void{
           
           if(this.gesicht==1){
              this.Kopf.Gesicht.K1.gotoAndStop(hautfarbe);
           }else if(this.gesicht==2){
              this.Kopf.Gesicht.K2.gotoAndStop(hautfarbe);
           }else if(this.gesicht==3){
              this.Kopf.Gesicht.K3.gotoAndStop(hautfarbe);
           }else if(this.gesicht==4){
              this.Kopf.Gesicht.K4.gotoAndStop(hautfarbe);
           }
           
           if(this.oberarm==1){
              this.ArmV.Arm.ArmNormal.gotoAndStop(hautfarbe);
              this.ArmH.Arm.ArmNormal.gotoAndStop(hautfarbe);
           }else if(this.oberarm==2){
              this.ArmV.Arm.ArmStark1.gotoAndStop(hautfarbe);
              this.ArmH.Arm.ArmStark1.gotoAndStop(hautfarbe);
           }else if(this.oberarm==3){
              this.ArmV.Arm.ArmStark2.gotoAndStop(hautfarbe);
              this.ArmH.Arm.ArmStark2.gotoAndStop(hautfarbe);
           }else if(this.oberarm==4){
              this.ArmV.Arm.ArmFett.gotoAndStop(hautfarbe);
              this.ArmH.Arm.ArmFett.gotoAndStop(hautfarbe);
           }
           
           if(this.hand==1){
              this.ArmV.Hand.HandNormal.gotoAndStop(hautfarbe);
              this.ArmH.Hand.HandNormal.gotoAndStop(hautfarbe);
           }else if(this.hand==2){
              this.ArmV.Hand.HandFaust.gotoAndStop(hautfarbe);
              this.ArmH.Hand.HandFaust.gotoAndStop(hautfarbe);
           }else if(this.hand==3){
              this.ArmV.Hand.HandFläche.gotoAndStop(hautfarbe);
              this.ArmH.Hand.HandFläche.gotoAndStop(hautfarbe);
           }else if(this.hand==4){
              this.ArmV.Hand.HandZeigend.gotoAndStop(hautfarbe);
              this.ArmH.Hand.HandZeigend.gotoAndStop(hautfarbe);
           }      
  }         
           }
}




Hier die Stage-klasse welche ich stark gekürzt habe. Eigentlich sind es 800 Zeilen Code aber das meiste sind nur hin und hergeschiebe von Buttons. Erzeugung, Größe, Position ect. von ca. 30 Buttons.

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
import flash.display.MovieClip;
import flash.text.engine.TextBaseline;

var Hero:Figur = new Figur();

Hero.width = 113;
Hero.height = 182;
Hero.x = 107;
Hero.y = 285;

addChild(Hero);

addChild(Zeiger1);
addChild(Zeiger12);

Zeiger1.addEventListener(MouseEvent.CLICK, Z1C);

...

Zeiger13.addEventListener(MouseEvent.CLICK, Z13C);

function Z1C(event:MouseEvent):void{
     Hero.setHautfarbeVor();
}
   
function Z12C(event:MouseEvent):void{
     Hero.setHautfarbeZurück();
}

function Z2C(event:MouseEvent):void{
     Hero.setGesichtVor();
}
function Z13C(event:MouseEvent):void{
     Hero.setGesichtZurück();
}


Wenn jetzt also Z1C und Z12C betätigt werden funktioniert alles super. Wenn ich dann aber Z2C oder Z13C betätige bekomme ich

"TypeError: Error #1009: Cannot access a property or method of a null object reference.
   at Figur/Aussehen()
   at Figur/setGesichtVor()
   at Spiel_fla::MainTimeline/Z2C()"

undzwar in den Zeilen:

ActionScript:
1
2
3
4
5
6
7
...
this.Kopf.Gesicht.K2.gotoAndStop(hautfarbe);
...
this.Kopf.Gesicht.K3.gotoAndStop(hautfarbe);
...
this.Kopf.Gesicht.K4.gotoAndStop(hautfarbe);
...


Diese Zeilen sind aber vollkommen in Ordnung weil ich sie schon bei den Buttons nutzte welche Funktionierten -.- ...

Ich hoffe ihr seid nicht Abgeschreckt von der Fülle an Infos ... Danke für eure Bemühungen.
Schlagwörter: 1009
Tetenja#2
Benutzerbild von Tetenja
Beiträge: 69
Registriert: Apr 2013

26.02.2016, 13:49

Hallo !
Der Fehler entsteht immer wen Flashs die Action nicht findet oder die noch nicht bereit ist.
Das scheint so zu sein das er bei dir nicht mehr zurück findet.
Ich nehme bei so etwas immer eine Variable (Hautfarbe = 0;), da kann ich immer prüfen ob der beim Umschalten die Variable auch  verändert. Dann kann ich von überall aus sagen
if(Hautfarbe ==1){ this.Kopf.Gesicht.K2.gotoAndStop(1);}
oder
this.Kopf.Gesicht.K2.gotoAndStop(Hautfarbe);
Dadurch kann man auch mit dem Schalter einfach immer den Wert von Hautfarbe erhöhen.
function Z1C(event:MouseEvent):void{
     Hautfarbe = Hautfarbe + 1();
}
Geändert von Tetenja am 26.02.16 um 13:50 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-2024 Sebastian Wichmann - Flashhilfe.de