Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-07-2004, 12:18   #1 (permalink)
Affine Abbildung
 
Benutzerbild von Samuel
 
Registriert seit: Feb 2002
Ort: Bremen
Beiträge: 15.089
Kann ich Code instanzen erzeugen?

Mist, ich hab auch Probleme, tsts.
Stellt euch 5 Buttons vor, die bei onClick nen Event haben. Es wird was getweent und hat nen anderen zustand.
Beim klick auf einen anderen Button, muss der vorherige, der ja nen anderen zustand eingenommen hat, zurück getweent werden, das rückwärts abspielen is kein problem, gibt ja genug tuts dafür.
Nun hab ich aber ein Problem, ich hab eine globale rückkehr funktion, also die ich grade beschrieben habe, teil davon:
ActionScript:
  1. ziel=_root.btns["btn_"+selected].Mover;
  2. with (ziel) {
  3.         onEnterFrame = function () {
  4.             prevFrame();
  5.             if (_currentframe == 1) {
  6.                 delete this.onEnterFrame;
  7.             }
  8.         };
  9.     }
ganz billig.
Nun kann es aber passieren, dass wenn ich die buttons schnell hin und her klicke, diese funktion aufgerufen wird, bevor sie vorher zu ende gelaufen ist.
Dh die Aktion vom vorherigen MC wird abbgebrochen und beim neuen begonnen.
Aber warum?Ich arbeite doch mit with und die onEnterFrame wird doch jeweils fürs bestimmte MC gewählt.
Dennoch laufen diese beim schnellen klicken nicht zu ende, sondern bleiben stecken.
Ich habs so probiert zu lösen:
ActionScript:
  1. resetother = function(next){
  2. if ((next==selected) || (busy==1)){
  3. return;
  4. }
  5. busy=1;
  6. ziel=_root.btns["btn_"+selected].Mover;
  7. with (ziel) {
  8.         onEnterFrame = function () {
  9.             prevFrame();
  10.             if (_currentframe == 1) {
  11.                 delete this.onEnterFrame;
  12.             }
  13.         };
  14.     }   
  15.  
  16. selected=next;
  17. busy=0;
  18. }
das busy zeigt an, ob es grade läuft und falls ja, soll die funktion vorzeitig beendet werden.
Das passiert aber nicht und mir ist nicht klar warum, die variable wird zu begin natürlich deklariert.
Dennoch klappt es ich.
Aber im grunde müsste das doch wurscht sein, weil die onEnterFrames unabhängige instanzen sind, oder nicht?
Ich komm da nicht weiter
__________________
Solange sich auch nur einer an ihn erinnert, solange auch nur ein Herz mit Leidenschaft schlägt - wie kann ein Traum da sterben?

If you use the wrong line ending characters when writing your files, you might find that other applications that open those files will "look funny". - PHP.net

Hier ruhn meine Gebeine - ich wollt, es wären Deine.

Try to look unimportant, they may be low on ammo!

Was ist euer Lieblings-Datentyp? Schreibt mir!
Samuel ist offline   Mit Zitat antworten
Alt 28-07-2004, 12:35   #2 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
alleine wnn ich ein with sehe wird mir schlecht. das ist 1. kein schöner stil, 2. bringt es in 90% aller fälle nur ärger und 3.spart es auch keine schreibarbeit wegen 2.

vielleicht hilf es probier es einfach mal

ActionScript:
  1. resetother = function (next) {
  2.     if ((next == selected) || (_global.busy == 1)) {
  3.         return;
  4.     }
  5.     _global.busy = 1;
  6.     var ziel = _root.btns["btn_"+selected].Mover;
  7.     ziel.onEnterFrame = function() {
  8.         this.prevFrame();
  9.         if (this._currentframe == 1) {
  10.             _global.busy = 0;
  11.             delete this.onEnterFrame;
  12.         }
  13.     };
  14.     selected = next;
  15. };

das busy wird ja im gleichen fluß erts 1 und ein paar zeilen tiefer wieder 0 das geht natürlich nicht
__________________
TVNEXT Solutions

Geändert von atothek (28-07-2004 um 12:37 Uhr)
atothek ist offline   Mit Zitat antworten
Alt 28-07-2004, 12:43   #3 (permalink)
_Thomas_
Gast
 
Beiträge: n/a
Zitat:
Zitat von atothek
alleine wnn ich ein with sehe wird mir schlecht. das ist 1. kein schöner stil, 2. bringt es in 90% aller fälle nur ärger und 3.spart es auch keine schreibarbeit wegen 2.
1. ist with sogar ein sehr guter und sauberer stil
2. bringt es in 90% aller fälle die millisekunden an performancegewinn, die manchmal entscheident sind
3. spart es, wenn man zu 1. fähig ist eine menge schreibarbeit und die unter 2. genannten millisekunden beim ausführen des codes



@ marylin manson:

wieso machst du das nicht mittels array in dem deine instanzen gespeichert sind? zentral verwaltet, könntest du die problematik umgehen, die identifikation einer bestimmten instanz mit hilfsvariablen (busy) durchschleifen zu müssen.

gruß,
Tante Amanda
  Mit Zitat antworten
Alt 28-07-2004, 12:53   #4 (permalink)
Affine Abbildung
 
Benutzerbild von Samuel
 
Registriert seit: Feb 2002
Ort: Bremen
Beiträge: 15.089
wie umgehe ich denn busy und mache das zentral? array ist einleuchtend, aber ich habs meiner meinung nach so zentral wie möglich gehalten.

das mti dem busy hat was geändert, nun klappts zwar nicht, aber alle anderen hören drauf, wenn busy 1 ist, jedoch hört die funktion dennoch in der mitte auf, dann kann ich garnichts mehr klicken
__________________
Solange sich auch nur einer an ihn erinnert, solange auch nur ein Herz mit Leidenschaft schlägt - wie kann ein Traum da sterben?

If you use the wrong line ending characters when writing your files, you might find that other applications that open those files will "look funny". - PHP.net

Hier ruhn meine Gebeine - ich wollt, es wären Deine.

Try to look unimportant, they may be low on ammo!

Was ist euer Lieblings-Datentyp? Schreibt mir!

Geändert von Samuel (28-07-2004 um 12:55 Uhr)
Samuel ist offline   Mit Zitat antworten
Alt 28-07-2004, 12:54   #5 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
so unterschiedlich sind die erfahrung mit manschen dingen. aber im punkto stil finde ich es alles andere sauber und gut und diese eine milisekunde will ich sehen die du in nem flashproject brauchst. also dir zeitkritischste sache die ich bissher in flash hatte war beim erstellen eines sequenzers. weil da ohne präzises timing gar nix geht. und da bringt es letztlich nur einen präzisen taltgeber zu haben. aber nun gut jeder wie er will.

looft das script von oben nicht ???
__________________
TVNEXT Solutions

Geändert von atothek (28-07-2004 um 13:04 Uhr)
atothek ist offline   Mit Zitat antworten
Alt 28-07-2004, 13:00   #6 (permalink)
Affine Abbildung
 
Benutzerbild von Samuel
 
Registriert seit: Feb 2002
Ort: Bremen
Beiträge: 15.089
aber funzen tuts immer noch nicht. Warum auch immer
__________________
Solange sich auch nur einer an ihn erinnert, solange auch nur ein Herz mit Leidenschaft schlägt - wie kann ein Traum da sterben?

If you use the wrong line ending characters when writing your files, you might find that other applications that open those files will "look funny". - PHP.net

Hier ruhn meine Gebeine - ich wollt, es wären Deine.

Try to look unimportant, they may be low on ammo!

Was ist euer Lieblings-Datentyp? Schreibt mir!
Samuel ist offline   Mit Zitat antworten
Alt 28-07-2004, 13:03   #7 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
na hast du mal ein anschauungs fla ??? vielleicht ist es dann leichter
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 28-07-2004, 13:09   #8 (permalink)
Affine Abbildung
 
Benutzerbild von Samuel
 
Registriert seit: Feb 2002
Ort: Bremen
Beiträge: 15.089
hm, nein hab ich leider nicht.
Ich überlege, was ich rausschmeißen könnte, aber im moment noch nicht
__________________
Solange sich auch nur einer an ihn erinnert, solange auch nur ein Herz mit Leidenschaft schlägt - wie kann ein Traum da sterben?

If you use the wrong line ending characters when writing your files, you might find that other applications that open those files will "look funny". - PHP.net

Hier ruhn meine Gebeine - ich wollt, es wären Deine.

Try to look unimportant, they may be low on ammo!

Was ist euer Lieblings-Datentyp? Schreibt mir!
Samuel ist offline   Mit Zitat antworten
Alt 28-07-2004, 13:12   #9 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
wie wäre es MM, wenn du die mc´s erst dann zurück laufen lässt, oder nur dann, wenn sie am letzten bild angekommen sind...?!


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 28-07-2004, 13:22   #10 (permalink)
Affine Abbildung
 
Benutzerbild von Samuel
 
Registriert seit: Feb 2002
Ort: Bremen
Beiträge: 15.089
So, jetzt funzt garnichts mehr.
Sekunde, ich überarbeite mal alles
__________________
Solange sich auch nur einer an ihn erinnert, solange auch nur ein Herz mit Leidenschaft schlägt - wie kann ein Traum da sterben?

If you use the wrong line ending characters when writing your files, you might find that other applications that open those files will "look funny". - PHP.net

Hier ruhn meine Gebeine - ich wollt, es wären Deine.

Try to look unimportant, they may be low on ammo!

Was ist euer Lieblings-Datentyp? Schreibt mir!
Samuel ist offline   Mit Zitat antworten
Alt 28-07-2004, 13:31   #11 (permalink)
Affine Abbildung
 
Benutzerbild von Samuel
 
Registriert seit: Feb 2002
Ort: Bremen
Beiträge: 15.089
Seit dem ich die var busy habe, ist alles den bach runter gegangen.

Muss es neu strukturieren, mal ne prinzipielle frage, wenn ich 5 buttons habe, die sich in einer zahl unterscheiden , aber genau den gleichen code haben, nur halt für den button, von dem der klickevent kommt, kann ich dann alle abfragen in ein topf werfen? Ne globale abfrage für die 5 Button?
Ansonsten werd ich kirre
__________________
Solange sich auch nur einer an ihn erinnert, solange auch nur ein Herz mit Leidenschaft schlägt - wie kann ein Traum da sterben?

If you use the wrong line ending characters when writing your files, you might find that other applications that open those files will "look funny". - PHP.net

Hier ruhn meine Gebeine - ich wollt, es wären Deine.

Try to look unimportant, they may be low on ammo!

Was ist euer Lieblings-Datentyp? Schreibt mir!
Samuel ist offline   Mit Zitat antworten
Alt 28-07-2004, 13:43   #12 (permalink)
Affine Abbildung
 
Benutzerbild von Samuel
 
Registriert seit: Feb 2002
Ort: Bremen
Beiträge: 15.089
Also ich bin wieder hier gelandet
ActionScript:
  1. resetother = function(next){
  2. if ((next==selected) || (busy==1)){
  3.  //trace(next+"=="+selected+"  busy="+busy);
  4. return;
  5. }
  6. busy=1;
  7. ziel=_root.btns["btn_"+selected].Mover;
  8. with (ziel) {
  9.         if (_currentframe!=_totalframes){busy=0;return;}
  10.                 onEnterFrame = function () {
  11.             prevFrame();
  12.             if (_currentframe == 1) {
  13.                 delete this.onEnterFrame;
  14.                                 _root.busy=0; _root.selected=next;
  15.             }
  16.         };
  17.     }   
  18.  
  19.  
  20.  
  21. }

Alle buttons haben nur diesen Code:

ActionScript:
  1. _root.btns.btn_1.onPress = function(){
  2. if (busy==1){return;}
  3. _root.btns.btn_1.Mover.play();
  4. resetother(1)
  5. }
nur die zahl variiert.
In diesem zustand aufgrund der busy abfrage passiert folgendes:
Beim zu schnellen klicken blockiert das script den zu schnellen druck eines dritten buttons, also einer wird gedrückt, der vorherige läuft grade durch die onEnterFrame und dann wird ein dritter gedrückt.
Gut ist, der dritte wird nicht ausgelöst, weil busy ja auf 1 steht.
Schlecht ist, das onEnterFrame hält an und busy ist für immer auf 1 und der onEnterFrame event steht irgendwo rum.

Ich kann ja mal die SWF zeigen.
sekunde, computer stürzt ab
__________________
Solange sich auch nur einer an ihn erinnert, solange auch nur ein Herz mit Leidenschaft schlägt - wie kann ein Traum da sterben?

If you use the wrong line ending characters when writing your files, you might find that other applications that open those files will "look funny". - PHP.net

Hier ruhn meine Gebeine - ich wollt, es wären Deine.

Try to look unimportant, they may be low on ammo!

Was ist euer Lieblings-Datentyp? Schreibt mir!
Samuel ist offline   Mit Zitat antworten
Alt 28-07-2004, 13:46   #13 (permalink)
Affine Abbildung
 
Benutzerbild von Samuel
 
Registriert seit: Feb 2002
Ort: Bremen
Beiträge: 15.089
So., hier die swf

http://mitglied.lycos.de/phpandmysqltest/FF/final.html

und es muss hierran liegen, es gibt sonst nichts
__________________
Solange sich auch nur einer an ihn erinnert, solange auch nur ein Herz mit Leidenschaft schlägt - wie kann ein Traum da sterben?

If you use the wrong line ending characters when writing your files, you might find that other applications that open those files will "look funny". - PHP.net

Hier ruhn meine Gebeine - ich wollt, es wären Deine.

Try to look unimportant, they may be low on ammo!

Was ist euer Lieblings-Datentyp? Schreibt mir!
Samuel ist offline   Mit Zitat antworten
Alt 28-07-2004, 13:56   #14 (permalink)
Affine Abbildung
 
Benutzerbild von Samuel
 
Registriert seit: Feb 2002
Ort: Bremen
Beiträge: 15.089
Ach mist, ich fabrizier son dreck, das gibts nicht, ich hab noch auf den Buttons:

ActionScript:
  1. _root.btns.btn_1.onRollOver = function(){
  2. _root.btns.btn_1.fader.play()
  3. }
  4. _root.btns.btn_1.onRollOut = function(){
  5. with (_root.btns.btn_1.fader) {
  6.         onEnterFrame = function () {
  7.             prevFrame();
  8.             if (_currentframe == 1) {
  9.                 delete this.onEnterFrame;
  10.             }
  11.         };
  12.     }   
  13. }

Ich idiot,
Also es bricht onEnterFrame ab, wenn ich über andere buttons gehe und das rollout event initialisiert wird, dabei ist es egal, obs nun vom selben button ist, oder nicht.
Aber dass kann ich mir nicht erklären.
Wenn ich alle rollouts mit break beende, dann funzt das ohne probleme, aber warum kommen sich zwei mcs in die quere?.
Nochmal getestet, ich kann jegliches busy rausnehmen, da tut sich nichts, dass muss an den rollouts liegen
__________________
Solange sich auch nur einer an ihn erinnert, solange auch nur ein Herz mit Leidenschaft schlägt - wie kann ein Traum da sterben?

If you use the wrong line ending characters when writing your files, you might find that other applications that open those files will "look funny". - PHP.net

Hier ruhn meine Gebeine - ich wollt, es wären Deine.

Try to look unimportant, they may be low on ammo!

Was ist euer Lieblings-Datentyp? Schreibt mir!

Geändert von Samuel (28-07-2004 um 13:59 Uhr)
Samuel ist offline   Mit Zitat antworten
Alt 28-07-2004, 14:11   #15 (permalink)
Affine Abbildung
 
Benutzerbild von Samuel
 
Registriert seit: Feb 2002
Ort: Bremen
Beiträge: 15.089
Gut, wenn ich schon spamme, atothek schon sich toll fühlen
Ich hab die with abfragen auf den button instanzen entfernt und siehe da, es funktioniert.
Mit with nicht, ohne schon.
Hat jemand n Tipp, warum das so ist?
__________________
Solange sich auch nur einer an ihn erinnert, solange auch nur ein Herz mit Leidenschaft schlägt - wie kann ein Traum da sterben?

If you use the wrong line ending characters when writing your files, you might find that other applications that open those files will "look funny". - PHP.net

Hier ruhn meine Gebeine - ich wollt, es wären Deine.

Try to look unimportant, they may be low on ammo!

Was ist euer Lieblings-Datentyp? Schreibt mir!
Samuel ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele