Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-03-2005, 12:39   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 15
variablenhandling in onEnterFrame

hallo, habe folgendes problem:

habe auf _root nen btn welcher wenn drauf geklickt wird, eine variable mit einem wert setzt. die variable soll nun in einer mc ausgelesenwerden und sollte sie sich verändert haben, soll eine aktion ausgeführt werden (in dem fall eine externe swf laden mit dem value der variable)

habe daher in der mc auf frame1 folgendes script:


PHP-Code:
stop();
this.onEnterFrame = function() {
    
trace("AKT: "+_root.menu.akt_cnt_mc);
    
trace("ALT: "+cnt_old_test);
    if (
cnt_old_test != _root.menu.akt_cnt_mc) {
        
trace("--- IF RUN ---");
        var 
cnt_old_test _root.menu.akt_cnt_mc;
        
trace("ifALT: "+cnt_old_test);
        
delete this.onEnterFrame;
        
play();
    }
}; 
var akt_cnt_mc: das ist die variable die vom btn gesetzt wird.
var cnt_old_test: in die variable wird der vorhergehende wert gesetzt.

es wird abgefragt ob sich die variable geändert hat, mittels der 'if'. wenn sich was geändert hat wird var cnt_old_test mit dem neuem value gespeichert und die aktion "play();" ausgeführt. nach der aktion springt es dann wieder auf frame 1.

zumindest so in der theorie...

zu begeinn wenn noch nix geklickt wurde ist akt_cnt_mc und cnt_old_test nicht gesetzt. demnach wird auch nicht die if durchlaufen, keine aktion wird ausgeführt..

Code:
TRACE-Ausgabe:
AKT: undefined
ALT: undefined
...
wird nun geklickt, so unterscheiden sich akt_cnt_mc und cnt_old_test. folglich wird die if ausgeführt inwelcher akt_cnt_mc und cnt_old_test wieder angeglichen werden. play wird erreicht und die aktion ausgeführt.

es wird danach wieder auf frame 1 gesprungen...

ok. nun sollte eigentlich cnt_old_test den wert von dem cnt_old_test übernommen haben, welcher in der ifanweisung geändert wurde. doch dies schlägt fehl.

akt_cnt_mc und cnt_old_test unterscheiden sich und das gleiche spiel beginnt von vorne:

Code:
TRACE-Ausgabe:
AKT: kontakt
ALT: undefined
--- IF RUN ---
ifALT: kontakt
...
wie zu sehen ist wird zwischen der variable in der schleife und auserhalb unterscheiden...

kann mir vllt jemand helfen und mir sagen wie ich dieses problem lösen kann, bzw mir sagen anwas das liegen könnte?

das müsste doch so eigentlich funktionieren oder?

lg cassi
XcassiX ist offline   Mit Zitat antworten
Alt 16-03-2005, 12:46   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Ich würde cnt_old_test auch auf der _root initialisieren, wenn Du das so schreibst wie bei Dir, dann existiert cnt_old_test auch nur in der if-Schleife, weil Du die Variable dort erstellt hast und wenn die zu ende ist, braucht man die theoretisch gar nicht mehr (so handhabt das Flash) und sie wird gelöscht.
__________________
ERROR: Signature is too large

Geändert von rendner[i] (16-03-2005 um 13:20 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 16-03-2005, 13:43   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 15
vielen dank

klappt nun so wie ich mir das vorgestellt habe. gibt es eigentlich ne funktion die das mit der abfrage bei geänderter variable automatisch macht? ohne if und so? vllt auch ohne on enter frame? wie so ne art interrupt-technik?
XcassiX ist offline   Mit Zitat antworten
Alt 16-03-2005, 14:11   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Weis nicht ob man das mitn Listener-Object machen kann, aber da kann man zB wenn Mouse gedrückt wird Objekte benachrichtigen lassen die dann irgendetwas ausführen.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 16-03-2005, 14:20   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 15
kanns tud mir da nen beispiel erstellen? weil onenterframe is schon etwas rechneraufwendig
XcassiX ist offline   Mit Zitat antworten
Alt 16-03-2005, 14:53   #6 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Da brauchste nur mal im Forum nach "Listener" suchen!
Aber ich denke das ist genauso aufwendig, weil er ja sicher auch prüft ob gedrückt oder nicht (wenn man benachrichtigt werden will, wenn eine Taste gedrückt wurde).
Oder Du guckst mal in die Flash-Hilfe.
__________________
ERROR: Signature is too large
rendner[i] 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 10:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele