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

variable wird nicht an timer übergeben [Flash 10]

 


AntwortenRegistrieren Seite1  

scronic7#1
Benutzerbild von scronic7
Beiträge: 24
Registriert: Sep 2009

20.05.2011, 20:47

hi...

irgendwie kapier ich nichts mehr, möchte nen film rückwärts abspielen, habe auch schonmal genau das gleiche gebaut, funmktioniert auch, aber in der neues datei gehts nicht. habe alles mit trace durchgetestet. aber bei der timer function kommt nur noch undefined raus, und ich kanns mir nicht erklären, in meinem anderen script wird die variable korrekt übergeben..... vielleicht ist etwas kleines falsch, aber ich sehs nicht.......

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
import flash.events.MouseEvent;
import flash.utils.Timer;      
import flash.events.TimerEvent;

var delay:uint = 20;
var repeat:uint = 0;
var delayTimer:Timer = new Timer(delay, repeat);

var reverseMc_str;

illus_mc.illus_back_button_but.addEventListener(MouseEvent.CLICK, release_func);


function release_func(e:MouseEvent):void {                     
        
        trace ([e.currentTarget.name]);
        
        delayTimer.start();                        
        delayTimer.addEventListener(TimerEvent.TIMER, timer_func_formc);
        
        var reverseMc_str = e.currentTarget.name.split("_back_button_but").join("_mc");
        trace (reverseMc_str);
 
 
                                      
}   

function timer_func_formc( e:TimerEvent):void {
  trace (reverseMc_str)
  //reverseMc_str.prevFrame();
}
Schlagwörter: Timer, variable
Geändert von scronic7 am 20.05.11 um 20:49 Uhr
andrelehnert#2
Benutzerbild von andrelehnert
Beiträge: 37
Registriert: Dec 2010

21.05.2011, 00:56

var reverseMc_str = e.currentTarget.name.split("_back_button_but").join("_mc");

Du instanzierst hier reverseMc_str das zweite mal.
versuchs mal ohne var:
ActionScript:
1reverseMc_str = e.currentTarget.name.split("_back_button_but").join("_mc");


LG ANdré
scronic7#3
Benutzerbild von scronic7
Beiträge: 24
Registriert: Sep 2009

Themenautor/in

21.05.2011, 16:55

ja hey, klasse genau das war der fehler, das hatte ich in meinem anderen script falsch übernommen. nun habe ich aber festgestellt, dass es zwar geht, aber der timer immer weiterläuft. auch in meinem anderen script ist das so.... also mein code sieht nun so aus:
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
function release_func(e:MouseEvent):void {                     
        
        trace ([e.currentTarget.name]);
        
        delayTimer.start();                                 
        delayTimer.addEventListener(TimerEvent.TIMER, timer_func_formc);
        
        reverseMc_str = e.currentTarget.name.split("_back_button_but").join("");
        trace (reverseMc_str);
        
        subMc_reverseComplete_boo = false;
        mainMc_reverseComplete_boo = false;     
                                         
}   



function timer_func_formc(e:TimerEvent):void {
     trace (reverseMc_str);
     
     trace (subMc_reverseComplete_boo);
     trace (mainMc_reverseComplete_boo);
     
     //if ( subMc_reverseComplete_boo == true && mainMc_reverseComplete_boo == true) {
   if ( this[reverseMc_str + "_mc"].currentFrameLabel == "reversed" && this.currentFrameLabel == "reversed") {
        
        trace (subMc_reverseComplete_boo);
        trace (mainMc_reverseComplete_boo);
        delayTimer.stop();                                     
        delayTimer.removeEventListener(TimerEvent.TIMER, timer_func_formc);
     } else {
        if (this[reverseMc_str + "_mc"].currentFrameLabel != "reversed") {      
           this[reverseMc_str + "_mc"].prevFrame();
           trace (this[reverseMc_str + "_mc"].currentFrame);
           } else {
           subMc_reverseComplete_boo = true;                  
           //trace (subMc_reverseComplete_boo);
      }
        if (this.currentFrameLabel != "reversed") {               
           this.prevFrame();
           trace (currentFrame);
           } else {
           mainMc_reverseComplete_boo = true;            
           //trace (mainMc_reverseComplete_boo);
      }         
     }
}


habe die variablen "subMc_reverseComplete_boo" und "mainMCreverseComplete_boo" überall getraced, sie kommen überall als true an. aber er gibt mir in der ausgabe immer und immerwieder den wert von reverseMC_str aus. ist das normal, oder heißt das der timer läuft noch?? habe auch den eventListener entfernt, aber bringt nix.....
Geändert von scronic7 am 21.05.11 um 16:58 Uhr
andrelehnert#4
Benutzerbild von andrelehnert
Beiträge: 37
Registriert: Dec 2010

21.05.2011, 18:31

Das heißt, daß dein programm denn AUfruf delayTimer.stop() nie erreicht-
also ist diese if-Bedingung niemals true;

LG ANdré
scronic7#5
Benutzerbild von scronic7
Beiträge: 24
Registriert: Sep 2009

Themenautor/in

21.05.2011, 18:46

ja, anscheinend wird sie nicht erreicht, aber wenn ich mir an dieser stelle meine vars trace, dann werden sie angezeigt, und auch true, daher habe ich testhalber auch mal eine abgewandelte if bedingung geschrieben, aber beides geht nicht, die frage ist, warum? wenn er mir die traces an der stelle ausgibt, muss er doch auch die anderen sachen abarbeiten, die dort stehen, oder wie oder was? :-)

gruß
scronic7#6
Benutzerbild von scronic7
Beiträge: 24
Registriert: Sep 2009

Themenautor/in

21.05.2011, 19:59

ich habe noch etwas rausgefunden: wenn ich nur eine der bedingungen nehme, dann stoppt er:

ActionScript:
1if ( this[reverseMc_str + "_mc"].currentFrameLabel == "reversed") {


das problem ist, er sollte erst stoppen wenn beide erfüllt sind......

wenn ich dann die zweite bedingung in einer weiteren verschachtelten if abfrage einbaue gehts wieder nicht, was ja nur heißt, dass diese bedingung nie true ist, aber das trace gibt mir doch diesen wert aus. woran kann das liegen?

gruß

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Ein Lob an die Admins [Flash CS5] 08.05.2022 - Indy_Crossover
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2024 Sebastian Wichmann - Flashhilfe.de