| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Aug 2010
Beiträge: 14
|
Hallo Forum, ich habe ein seltsames Problem. Ich lasse mit meinem Script Textboxen via Tween bewegen und habe einen Listener der auf MOTION_FINISH wartet, um dann die nächste Box loszuschicken. Jetzt passiert es aber manchmal, dass die Box auf halber Strecke liegen bleibt. Ich habe das Ganze mal mit dem Debugger abgespielt und es kommt vor, dass er, nachdem der Tween gestartet und bevor er beendet wurde, die Box stoppt und der Debugger folgendes ausgibt: [UnloadSWF] D:\...\adv060.swf\[[DYNAMIC]]\1 (Er gibt natürlich statt "..." den Pfad an...) Das Problem tritt nicht jedes Mal auf und auch nicht immer an der selben Stelle. Was hat das zu bedeuten? Und vorallem: Wie kann ich das beheben? Ich bin für jeden Rat dankbar. gruß mrnx Geändert von mrnx (04-10-2010 um 18:04 Uhr) |
| | |
| | #4 (permalink) |
| SGD-Flashboon Registriert seit: Sep 2009
Beiträge: 449
|
liess dir dazu mal zb das hier durch Understanding Try/Catch in ActionScript synchrone errors, abzufangen zb per eventListener, sind zb frame.event errors, und asynchrone sind u.a. errors während der laufzeit von scripten. so hab ichs zumindest verstanden, und konnte damit letztens mein memory game stabiler machen. das ist beim reinladen der bilder am anfang regelmäßig stehengeblieben, trotz das ich load.complete etc sauber verarbeitet hatte. |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Aug 2010
Beiträge: 14
|
Hier mal der problematische Stück Code: ActionScript:
Dass der Fehler nicht woanders herkommen kann, habe ich durch die Tracer rausbekommen, weil, wenn der Fehler auftritt, "tweenfinishstart" nicht mehr ausgetracet wird. Mit try-catch komme ich nicht recht weiter. Egal, ob ich ihn um die beiden Funktionen oder in die Funktionen lege, er gibt nichts aus. Also, weder ActionScript:
noch ActionScript:
bringt mir eine Fehlernachricht. |
| | |
| | #6 (permalink) |
| SGD-Flashboon Registriert seit: Sep 2009
Beiträge: 449
|
versuchs mal so: ActionScript:
ansonsten hätte ich noch ne andere idee, denn du setzt ja die variable Tfinished= false nachdem das event schon beendet sein könnte. ich seh auch grad du überschreibst in deiner schleife die variable myTween immer wieder, während das event noch stattfindet. das kann natürlich nicht funktionieren, denn so haut der dir immer wieder neue tweens mit gleichem namen in die klasse. du musst während der schleife jeden tween einen eigenen namen geben, zb mit nem array. dannach fragst du nur für den zuletzt erstellten tween per eventListener finish ab, und kannst für alle den listener in einer schleife wieder removen. Geändert von xeed (05-10-2010 um 18:53 Uhr) |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Aug 2010
Beiträge: 14
|
Ich überschreibe zwar die Variable - das könnte man ändern - aber nicht bevor der Tween nicht zuende ist. Deswegen ja tweenfinished. Aber ich werde mal deine try-catch Methode ausprobieren. //edit: Deine try-catch Methode bringt mir auch keine Fehlernachricht. Tfinished=false an den Anfang der Funktion zu setzen - also bevor der Tween überhaupt fertig sein kann - behebt das Problem auch nicht. Mein Code sieht jetzt so aus: ActionScript:
Ich merke also, falls ein Tween losgeschickt wird, bevor der vorherige beendet wurde. //edit2: Interessanterweise kann ich den Fehler nicht mehr provozieren. Ich habe einfach nur den Code von oben genommen und versucht einen Fehler zu provozieren (nach der 15. bewegten Box hat er meistens gestoppt) und meine Tracer zu beobachten, ABER: Aus irgendeinem Grund (es ist ja einfach nur ein Tracer mehr drin), gibt er zwar immer noch das UnloadSWF usw aus, stoppt den Tween aber nicht mehr. Keine Ahnung was das soll, aber jetzt läufts ja. Danke ^^ Geändert von mrnx (05-10-2010 um 20:47 Uhr) |
| | |
| | #8 (permalink) |
| SGD-Flashboon Registriert seit: Sep 2009
Beiträge: 449
|
die for schleife wird in deinem script, unabhängig davon ob der tween beendet ist, hochgezählt, und somit auch die myTween's erstellt. vielleicht ist das auch gewollt, ich weiss ja nicht was in tweenfinished gemacht wird. aber wenn nicht, könntest du das problem mit einer while schleife lösen, die j erst hochzählt, wenn TFinished wieder true ist. gruss |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Aug 2010
Beiträge: 14
|
Möglicherweise hast doch nicht ganz unrecht. Es werden manchmal mehrere Boxen zur selben Zeit bewegt. Ich gebe zu, so noch nicht über die Problematik des mehrfach belegten myTweens nachgedacht zu haben. Jetzt hat jeder der Tweens einen eigenen Namen und obwohl ich die problemlösenden Tracer rausgeschmissen habe, läuft es fehlerfrei. Vielleicht lags ja doch daran. Danke. Geändert von mrnx (06-10-2010 um 14:48 Uhr) |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| stop, swf, tween, unload |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Ich glaube diesen Problem kennen viele:-( Performance Problem | Animator | Flash MX | 8 | 11-01-2011 17:07 |
| Scrolling Problem ( removeChild & addChild Problem ) | Jakozk | ActionScript 3 | 2 | 28-02-2010 19:12 |
| Antialiasing of Systemfonts problem (problem with Bitmapdata.draw()) | genesys | ActionScript 3 | 1 | 17-11-2009 12:52 |
| onRollOver-Problem, oder auch gotoAndPlay - kleines Problem für geübten Skripter | Ladina | Flash Einsteiger | 2 | 04-05-2007 11:09 |
| loadmovie problem und schleifen problem mit variable | Bourne | ActionScript 1 | 8 | 13-09-2004 00:32 |