Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-11-2005, 20:25   #1 (permalink)
Neuer User
 
Benutzerbild von optimum_prime
 
Registriert seit: Apr 2005
Beiträge: 61
Mcs verzögert erstellen

Hallo,
ich hab eine Frage zu setIntervall:

var i = 1;
function streuzeugs(linkage:String) {
var item_mc:MovieClip;
if (i<30) {
i++;
item_mc = _root.attachMovie(linkage, "item"+String(i), i);
item_mc._x = random(75);
item_mc._y = random(55);
id = setIntervall(streuzeugs("Zeugs"), 100);
}
}
streuzeugs("Zeugs");

Dieses Skript erzeugt mir 30 Zeugs und streut die auch random-mäßig rum, aber alle auf einmal und nicht, wie ich es gerne hätte, im 1/10-Sekunden-Takt hintereinander versetzt. Was mach ich falsch?
Vielen Dank,
op
optimum_prime ist offline   Mit Zitat antworten
Alt 01-11-2005, 20:31   #2 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
hi,
mit deinem script hast du eine rekursive funktion aufgerufen, die sich 30 mal neu aufruft, und dazu - nebenbei - 30 intervalle startet.
was du willst, ist aber ein interval. dazu startest du den interval einmal, und dieser ruft dann die funktion auf - wenn i=30 ist, soll er aber auch gelöscht werden, sonst läuft er ewig weiter.
PHP-Code:
var 1;
id setIntervall(streuzeugs(), 100"Zeugs");

function 
streuzeugs(linkage:String) {
    var 
item_mc:MovieClip;
    if (
i<30) {
        
i++;
        
item_mc _root.attachMovie(linkage"item"+String(i), i);
        
item_mc._x random(75);
        
item_mc._y random(55);
    } else {
        
clearInterval(id);
    }

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 01-11-2005, 20:46   #3 (permalink)
Neuer User
 
Benutzerbild von optimum_prime
 
Registriert seit: Apr 2005
Beiträge: 61
Irgendwas stimmt noch nicht (auch nachdem ich setInterval mit nur einem L geschrieben hatte), die id ist undefined. Hä?

http://www.halbesachen.de/streuzeugs.zip

Geändert von optimum_prime (01-11-2005 um 20:49 Uhr)
optimum_prime ist offline   Mit Zitat antworten
Alt 01-11-2005, 20:49   #4 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
ok, probier mal _global.id = setInterval(..), und dann clearInterval(_global.id); sorry, hab das LL auch nicht gesehen - harte zeiten ohne
gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 01-11-2005, 20:51   #5 (permalink)
Neuer User
 
Benutzerbild von optimum_prime
 
Registriert seit: Apr 2005
Beiträge: 61
Tja, leider immer noch undefined:

var i = 1;
_global.id = setInterval(streuzeugs("zeugs"), 100);
trace("id= "+id);
function streuzeugs(linkage:String) {
var item_mc:MovieClip;
if (i<30) {
i++;
item_mc = _root.attachMovie(linkage, "item"+String(i), i);
item_mc._x = random(75);
item_mc._y = random(55);
} else {
clearInterval(_global.id);
}
}
optimum_prime ist offline   Mit Zitat antworten
Alt 01-11-2005, 20:55   #6 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
das mit dem parameter am ende ist schon richtig so, aber die () müssen weg. so gehts
PHP-Code:
_global.id setInterval(streuzeugs100"zeugs"); 
gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 01-11-2005, 21:00   #7 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
bzw. so: i muss auch noch _global gemacht werden, bzw. ein anderer bezeichner benutzt werden, da die for-schleife da komisch mitspielt (sch*** flash-complier)
PHP-Code:
_global.1;
_global.id setInterval(streuzeugs100"zeugs");
trace("id= "+id);
function 
streuzeugs(linkage:String) {
    
trace(_global.i+'++');
    var 
item_mc:MovieClip;
    if (
_global.i<30) {
        
_global.i++;
        
item_mc _root.attachMovie(linkage"item"+String(_global.i), _global.i);
        
item_mc._x random(75);
        
item_mc._y random(55);
    } else {
        
clearInterval(_global.id);
    }
}
for (
i in _root) {
    
trace("Typ: "+typeof _root[i]+" Wert: "+_root[i]);

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 01-11-2005, 21:07   #8 (permalink)
Neuer User
 
Benutzerbild von optimum_prime
 
Registriert seit: Apr 2005
Beiträge: 61
Das mit dem i hatte ich auch grade entdeckt.
Danke Mann, das rettet mir den Abend.

Wie kommt es bloss, dass AS so f***-pain-in-the-a** ist? Selbst wenn ich meine, etwas verstanden zu haben: es funzt nie auf Anhieb und selten auf den zweiten Hieb. Bei JavaScript oder Lingo tu ich mich nicht so schwer...
optimum_prime ist offline   Mit Zitat antworten
Alt 01-11-2005, 22:03   #9 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
genau so ist es. flash will von uns, dass wir alles schon tausendmal vorgekaut haben, bevor es uns dann aus den fingern strömt. es passiert viel zu selten, dass mal was ohne mehrmaliges probieren funktioniert, aber umso größer ist die freude und der stolz, wenn mal was auf anhieb klappt.
den interval habe ich schon so oft benutzt, und auch schon oft hier im forum hilfe dazu angeboten - wie man ihn sauber und zuverlässig löscht, ohne ihn über eine globale variable zu instanzieren, habe ich jedoch immer noch nicht herausgefunden. manchmal gehts, meistens nicht. zuverlässig ist nur die globale variable - aber schön ist das eigentlich nicht.

naja, freut mich dass es jetzt geht.

gruß janosch
janoshnosh 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 22:39 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele