Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-01-2007, 11:58   #1 (permalink)
backToThe._roots
 
Benutzerbild von Blax_ed
 
Registriert seit: Feb 2003
Ort: Ebnat-Kappel [CH]
Beiträge: 1.571
Variablen werden nicht in der Funktion übergeben

Moinsen Ladies,

hier ne kleine funktion die nach einer bestimmten Zeit die Variable "maskfinish" auf "1" setzen soll.. Leider passiert dass nicht. Kann mir jemand sagen wo mein Denkfehler liegt ?

ActionScript:
  1. var maskfinish=0;
  2. ////////////////////////////////
  3. //Zeitfunktion zum umschalten der Variablen --varitiming();
  4. function varitiming(welche, werte, sec) {
  5.     trace("Varitiming ausgelöst, welche: "+welche+"Werte:  "+werte+"  Sekunden: "+sec);
  6.     time = new Date();
  7.     sek = time.getTime()/1000;
  8.     this.createEmptyMovieClip("zeitgeber", 0);
  9.     this.zeitgeber.onEnterFrame = function() {
  10.         newtime = new Date().getTime()/1000;
  11.         endtime = newtime-sek;
  12.         endtime = Math.round(endtime);
  13.         if (endtime == sec) {
  14.             // sec sind die sekunden die durch den aufruf übergeben werden, z.B. 2 == 2 Sekunden
  15.             trace("Zeit erreicht:"+sec);
  16.             welche = werte; //HIER SOLLEN DIE WERTE GESETZT WERDEN
  17.             trace("welche"+welche);
  18.             trace("Maskfinish="+_root.maskfinish);
  19.             delete this.onEnterFrame;
  20.         }
  21.     };
  22. }
  23. ////////////////////////////////
  24. varitiming(maskfinish, 1, 3);
  25. //Variable "maskfinish" SOLL nach 3 Sekunden auf 1 geschaltet
  26.  
__________________
Cheers,
Flow!
Blax_ed ist offline   Mit Zitat antworten
Alt 04-01-2007, 12:56   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Bin ich blind?
Wo wird »maskfinish« denn in der Funktion angesprochen?

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 04-01-2007, 12:59   #3 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
das wird so leider nicht klappen.
du übergibst mit "maskfinish" nur den wert der variablen, allerdings keine referenz auf diese variable.
wenn du die variable maskfinish ändern willst, musst du das direkt in der funktion tun.

zeile 16:
_root.maskfinish = werte //HIER SOLLEN DIE WERTE GESETZT WERDEN

einer alternative wäre, daß du die variable, die geändert werden soll als string übermittelst. dadurch übergibst du nicht direkt deren wert sondern eben den variablen-namen.

dieser kann dann wie folgt verwendet werden:

PHP-Code:
var maskfinish=0;
////////////////////////////////
//Zeitfunktion zum umschalten der Variablen --varitiming();
function varitiming(welchewertesec) {
    
trace("Varitiming ausgelöst, welche: "+welche+"Werte:  "+werte+"  Sekunden: "+sec);
    
time = new Date();
    
sek time.getTime()/1000;
    
this.createEmptyMovieClip("zeitgeber"0);
    
this.zeitgeber.onEnterFrame = function() {
        
newtime = new Date().getTime()/1000;
        
endtime newtime-sek;
        
endtime Math.round(endtime);
        if (
endtime == sec) {
            
// sec sind die sekunden die durch den aufruf übergeben werden, z.B. 2 == 2 Sekunden
            
trace("Zeit erreicht:"+sec);
            
_root[welche] = werte//HIER SOLLEN DIE WERTE GESETZT WERDEN
            
trace("welche"+welche);
            
trace("Maskfinish="+_root.maskfinish);
            
delete this.onEnterFrame;
        }
    };
}
////////////////////////////////
varitiming("maskfinish"13);
//Variable "maskfinish" SOLL nach 3 Sekunden auf 1 geschaltet 
gruß, twister
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 04-01-2007, 13:11   #4 (permalink)
backToThe._roots
 
Benutzerbild von Blax_ed
 
Registriert seit: Feb 2003
Ort: Ebnat-Kappel [CH]
Beiträge: 1.571
Zitat:
Zitat von gaspode Beitrag anzeigen
Bin ich blind?
Wo wird »maskfinish« denn in der Funktion angesprochen?

gruß, gaspode
ActionScript:
  1. welche = werte; //HIER SOLLEN DIE WERTE GESETZT WERDEN
  2.  

die funktion lautet ja:
ActionScript:
  1. varitiming(welche, werte, sec);

und der auslöser ist ja der aufruf an sich mit:
ActionScript:
  1. varitiming(maskfinish, 1, 3);
also sollte maskfinish der Name der Variable sein, "1"-Der Wert und "3"-die Sekunden bis der Event abgelaufen ist..

Aber MR Twister hatte recht.. leider wird nicht der Name übergeben sondern ein undefinierter Wert.

Wenn wir jetzt aber die Funktion so schreiben:
ActionScript:
  1. _root[welche] = werte; //HIER SOLLEN DIE WERTE GESETZT WERDEN
  2.  

und den aufruf als !String! übergeben:

ActionScript:
  1. varitiming("maskfinish", 1, 3);
funzt dat blendent..


und somit auch ein sofortiges Dankeschön an Mr Twister..

u made me shaking ^^
__________________
Cheers,
Flow!
Blax_ed 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:53 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele