Flashhilfe.de - Flash Community

Timer - sporadischer Error #1009 [Flash 10]

 


AntwortenRegistrieren Seite1  

Luzze#1
Benutzerbild von Luzze
Beiträge: 47
Registriert: Jul 2009

12.07.2009, 19:05

Hallo zusammen,

ich habe ein ziemlich nerviges Problem mit der Timer Klasse.
Zur Erklärung... Es geht um Spiel, eine Slotmachine. Mithilfe der Timerklasse
erstelle ich pro "Walze" die jeweilgen Symbole per addChild und blende dann die jeweilige "Drehanimation" aus und die Symbole ein.
Das funktioniert auch soweit alles ganz gut. Sobald alle Walzen gestoppt sind und alle Symbole angezigt werden, rufe ich die function "afterSpin" auf, die dann solche Dinge wie aktualisierung des Kontostands, Gewinnsounds etc. übernimmt, also alles, was nachdem drehen der Walzen erledigt wird.

Nun tritt aber immer wieder ein sporadischer Fehler auf. Folgende Meldung erhalte ich:

ActionScript:
1
2
3
4
5
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
   at deep_blue_sea_fla::MainTimeline/afterSpin()
   at MethodInfo-37()
   at flash.utils::Timer/_timerDispatch()
   at flash.utils::Timer/tick()


Merkwürdig ist, das das Problem sporadisch auftritt,d..h. es kann nach 100 "Drehungen" oder schon gleich nach dem ersten Mal auftreten...
In der Funktion afterSpin(), die hier genant wird, gibt es keine Timerklasse...

Hier mal der verantwortliche Code, ich bin eine kleine Codesau, also nicht sehr übersichtlich: (Ich habe hier ganz bewusst auf eine Schleife verzeichtet, um die Walzen einzeln bearbeiten zu 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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
var myTimer:Timer = new Timer(630,5);
   myTimer.addEventListener(TimerEvent. TIMER,spinani);
   myTimer.start();
   var anzbonus:int=0;
   
   function spinani() {

      var bonussound:Boolean=false;
      var i:int=1;
      if (wnum==1) {
         //Bild 1,6,11
         var posx:int=0;
         var posy:int=0;
         for (i=1; i<=3; i++) {
            if (i==1) {
               var xx:int=1;
               posx=80;
               posy=165;
            }
            if (i==2) {
               xx=6;
               posx=80;
               posy=265;
            }
            if (i==3) {
               xx=11;
               posx=80;
               posy=365;
            }
            var ClassReference:Class=getDefinitionByName("mc_"+e.target.data["feld"+xx]) as Class;
            var instance:MovieClip= new ClassReference();
            if (e.target.data["feld"+xx]=="bonus") {
               anzbonus+=1;
               bonussound=true;
            }
            instance.x=posx;
            instance.y=posy;
            container.addChild(instance);
         }
         Walzenstop.play(1,0);
         if (bonussound==true) {
            Bonuswalze.play(1,0);
         }
         walzenani1.visible=false;
         container.visible=true;
      }

      if (wnum==2) {
         //Bild 2,7,12
         for (i=1; i<=3; i++) {
            if (i==1) {
               xx=2;
               posx=205;
               posy=165;
            }
            if (i==2) {
               xx=7;
               posx=205;
               posy=265;
            }
            if (i==3) {
               xx=12;
               posx=205;
               posy=365;
            }
            var ClassReference2:Class=getDefinitionByName("mc_"+e.target.data["feld"+xx]) as Class;
            var instance2:MovieClip= new ClassReference2();
            if (e.target.data["feld"+xx]=="bonus") {
               anzbonus+=1;
               bonussound=true;
               if (anzbonus==2) {
                  soundChannel2=Bonuschance.play(1,0);
                  myTimer.delay=2400;

               }
            }
            instance2.x=posx;
            instance2.y=posy;
            container.addChild(instance2);
         }
         Walzenstop.play(1,0);
         if (bonussound==true) {
            Bonuswalze.play(1,0);
         }
         walzenani2.visible=false;
      }

      if (wnum==3) {
         //Bild 3,8,13
         for (i=1; i<=3; i++) {
            if (i==1) {
               xx=3;
               posx=345;
               posy=165;
            }
            if (i==2) {
               xx=8;
               posx=345;
               posy=265;
            }
            if (i==3) {
               xx=13;
               posx=345;
               posy=365;
            }
            var ClassReference3:Class=getDefinitionByName("mc_"+e.target.data["feld"+xx]) as Class;
            var instance3:MovieClip= new ClassReference3();
            if (e.target.data["feld"+xx]=="bonus") {
               anzbonus+=1;
               bonussound=true;
               if (anzbonus==2) {
                  soundChannel2=Bonuschance.play(1,0);
                  myTimer.delay=2400;

               }
            }

            instance3.x=posx;
            instance3.y=posy;
            container.addChild(instance3);
         }
         Walzenstop.play(1,0);
         if (bonussound==true) {
            Bonuswalze.play(1,0);
         }
         walzenani3.visible=false;
      }


      if (wnum==4) {
         //Bild 4,9,14
         for (i=1; i<=3; i++) {
            if (i==1) {
               xx=4;
               posx=480;
               posy=165;
            }
            if (i==2) {
               xx=9;
               posx=480;
               posy=265;
            }
            if (i==3) {
               xx=14;
               posx=480;
               posy=365;
            }
            var ClassReference4:Class=getDefinitionByName("mc_"+e.target.data["feld"+xx]) as Class;
            var instance4:MovieClip= new ClassReference4();
            if (e.target.data["feld"+xx]=="bonus") {
               bonussound=true;
            }
            instance4.x=posx;
            instance4.y=posy;
            container.addChild(instance4);
         }
         Walzenstop.play(1,0);
         if (bonussound==true) {
            anzbonus+=1;
            Bonuswalze.play(1,0);
            if (anzbonus==2) {
               soundChannel2=Bonuschance.play(1,0);
               myTimer.delay=2400;

            }
         }
         walzenani4.visible=false;
      }


      if (wnum==5) {
         //Bild 5,11,15
         for (i=1; i<=3; i++) {
            if (i==1) {
               xx=5;
               posx=616;
               posy=165;
            }
            if (i==2) {
               xx=10;
               posx=616;
               posy=265;
            }
            if (i==3) {
               xx=15;
               posx=616;
               posy=365;
            }
            var ClassReference5:Class=getDefinitionByName("mc_"+e.target.data["feld"+xx]) as Class;
            var instance5:MovieClip= new ClassReference5();
            if (e.target.data["feld"+xx]=="bonus") {
               bonussound=true;
            }
            instance5.x=posx;
            instance5.y=posy;
            container.addChild(instance5);
         }
         Walzenstop.play(1,0);
         if (bonussound==true) {
            Bonuswalze.play(1,0);
         }
         walzenani5.visible=false;
         is_spin=false;
         startbutton.gotoAndPlay(1);
         soundChannel1.stop();
         if (anzbonus>=2) {
            soundChannel2.stop();
         }
         anzbonus=0;
         wnum=0;
         myTimer.stop();
         myTimer.removeEventListener(TimerEvent.TIMER,spinani);
         myTimer = null;
         afterSpin();
      }


      wnum+=1;
   }
}


Ich hoffe, Ihr könnt mir hier weiterhelfen, ich bin mit meinem Latein am Ende...
Achso, das Problem tritt immer nur bei der 5 Walze auf...also dann, wenn wnum auf 5 steht...

Edit: Es gibt auf der Hauptzeitleiste nur ein Bild,alle Movieclips werden bei Bedarf per Script auf dieBühne befördert.

Grüße
Daniel
Es gibt Leute, die können Ihren Stammbaum bis zu denen zurückverfolgen, die noch darauf saßen. ^^
Geändert von Luzze am 12.07.09 um 19:11 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


Sebastian#2
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

12.07.2009, 20:56

Kannst Du eine Beispiel fla veröffentlichen?
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Luzze#3
Benutzerbild von Luzze
Beiträge: 47
Registriert: Jul 2009

Themenautor/in

12.07.2009, 21:56

HalloSebastian,

da das ganze dann doch etwas umfangreicher ist und ohne php kaum funktioniert, hab ich das ganze mal in eine zip gepackt. wenn du einen lokalen server hast, einfach in den root server kopieren....dann sollte es gehen

Hier downloaden

Ich bin wie gesagt eine "Scriptsau" und das ist mein erstes grösseres Flash-Projekt...weiß nicht  ob du damit zurecht kommst :)
Es gibt Leute, die können Ihren Stammbaum bis zu denen zurückverfolgen, die noch darauf saßen. ^^
springer#4
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

13.07.2009, 07:21

hi,
kann deine fla nicht öffnen, hab nur cs3..
bei mir kommt aber noch ein anderer fehler, gleich beim start....

PHP:
1
2
3
4
5
6
7
8
9
<?
TypeError
Error #2007: Parameter text darf nicht 'null' sein.
   
at flash.text::TextField/set text()
   
at deep_blue_sea_fla::MainTimeline/completeIni()
   
at flash.events::EventDispatcher/dispatchEventFunction()
   
at flash.events::EventDispatcher/dispatchEvent()
   
at flash.net::URLLoader/onComplete()
?>
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Werbung
Beiträge: 0
Registriert: Feb 2016


Luzze#5
Benutzerbild von Luzze
Beiträge: 47
Registriert: Jul 2009

Themenautor/in

13.07.2009, 10:05

das ist deswegen, weil er sich per php-script vorher startdaten lädt,wie kontostand etc. und diese vars dann in die dyn.textfelder setzt. das geht natürlich nur, wenn du das ganze auf einem webserver laufen lässt.

gruss

edit: ich hab jetzt auch mal die.fla für cs3 reingepackt...
Es gibt Leute, die können Ihren Stammbaum bis zu denen zurückverfolgen, die noch darauf saßen. ^^
Geändert von Luzze am 13.07.09 um 10:36 Uhr
springer#6
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

13.07.2009, 10:39

hmmm, läuft aber auf einem webserver ;-)
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Geändert von springer am 13.07.09 um 10:40 Uhr
Luzze#7
Benutzerbild von Luzze
Beiträge: 47
Registriert: Jul 2009

Themenautor/in

13.07.2009, 10:46

hmm . dann ist das wohl eine php-sache..., scheint die vars nicht zu gernerieren....sind übrigens sessions...evtl. kein php 5 ? auf meinem server kommt diese meldung nicht ...ich werde diesen fehler bei gelegenheit noch abfangen
Es gibt Leute, die können Ihren Stammbaum bis zu denen zurückverfolgen, die noch darauf saßen. ^^
springer#8
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

13.07.2009, 10:55

doch hab php5...

hm, wie kann man denn die walzen stoppen...?

bei mir kommt auch noch dieser fehler:

PHP:
1
2
3
4
5
6
7
8
<?
ReferenceError
Error #1065: Variable mc_undefined ist nicht definiert.
   
at global/flash.utils::getDefinitionByName()
   
at MethodInfo-37()
   
at flash.utils::Timer/_timerDispatch()
   
at flash.utils::Timer/tick()
?>
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Luzze#9
Benutzerbild von Luzze
Beiträge: 47
Registriert: Jul 2009

Themenautor/in

13.07.2009, 11:35

achso, ich vergass, das noch mysql fehlt :) ihr braucht euch jetzt nicht die mühe machen und auch noch die db struktur zu laden ...
ich werde das mal zur ansicht hochladen
Es gibt Leute, die können Ihren Stammbaum bis zu denen zurückverfolgen, die noch darauf saßen. ^^
Luzze#10
Benutzerbild von Luzze
Beiträge: 47
Registriert: Jul 2009

Themenautor/in

13.07.2009, 13:14

also, hier mal der slot im einsatz, auf dem webserver kommt die beschriebene fehlermeldung auch...

Slot ansehen

Gruss
Es gibt Leute, die können Ihren Stammbaum bis zu denen zurückverfolgen, die noch darauf saßen. ^^
Geändert von Luzze am 13.07.09 um 13:14 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   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de