| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jul 2001 Ort: Stuttgart
Beiträge: 58
|
Hi leute steh grad mal aufm schlauch, ich komm ned dahinter wie ich setinterval in ner funktion sinvoll einsetze, könnt ihr mir mal auf die sprünge helfen? ich versuche on klick ein bild auszublenden (alpha) und zwar per setInterval (oder gibts nen besseren weg?), im mc code selber hab ich das hinbekommen, aber da die funktionalität ein paar mal im clip aufgerufen werden soll, möcht ich das halt in ner funktion haben... im aktuellen stand durchläuft das script einmal (alpha +5). Hier mal der code: Code: on (release) {
//------------------------------------------------
function fadeIn(fader,objekt) {
trace(fader); trace(objekt);
trace("Fade in: "+ objekt._alpha);
objekt._alpha += 5;
if (objekt._alpha > 100) {
clearInterval(fader);
trace("clear Fade in");
}
}
function fadeOut(fader,objekt) {
trace(fader); trace(objekt);
trace("Fade out: "+ objekt._alpha);
objekt._alpha -= 5;
if (objekt._alpha < 0) {
clearInterval(fader);
trace("clear Fade out");
}
}
fade = function(fader,modi,objekt){
//trace(fader); trace(modi); trace(objekt);
if(modi=="in"){
fad=setInterval(fadeIn(fader,objekt), 50, objekt);
}
if(modi=="out"){
fad=setInterval(fadeOut(fader,objekt), 50, objekt);
}
trace(fad);
//fade("fade"+i,in,_root.werke.bild_gross);
}
//------------------------------------------------
//aufruf
my_mcl.loadClip("../upload/arbeiten/"+_global.tmpArr[i].file, _root.werke.bild_gross);
_root.werke.bild_gross._alpha=0;
fade("fade"+i,"in",_root.werke.bild_gross); |
| | |
| | #2 (permalink) |
| Gast
Beiträge: n/a
|
setInterval würde ich für solche Sachen nicht unbedingt nehmen, der ist mehr für Verzögerungsfunktionen oder Beeinflussung der Framerate gedacht. Nimm besser einen onEnterFrame-Event, bspw.: ActionScript:
|
|
| | #3 (permalink) |
| Neuer User Registriert seit: Jul 2001 Ort: Stuttgart
Beiträge: 58
|
Danke HW, bist echt super. aber würd das bei sagen wir 40 bis 80 leer erzeugten watchern nicht ein wenig schmutzig sein? im prinzip soll ja nur ein tweening effekt enstehen der auf dem alpha des geladenen bildes liegt |
| | |
| | #4 (permalink) | |
| Gast
Beiträge: n/a
| Zitat:
Nein, Spaß beiseite, ist völlig ok, solange du die MCs wieder removst... Du kannst natürlich den onEnterFrame auch auf der Hauptzeitleiste laufen lassen und sparst dir dann das Erstellen und Löschen von EnterFrame-Events und -MCs, wenn du aber gleichzeitig auf der Hauptzeitleiste eine kontinuierliche Animation o.ä. am Laufen hast, wird es schwierig. Deswegen erstell ich mir immer leere MCs, die den EnterFrame übernehmen. | |
|
| | #5 (permalink) |
| - Registriert seit: Jan 2004
Beiträge: 3.002
|
wo werden denn 40-80 leere watcher erstellt?
__________________ mfG, Robert Tutorials: [TUTORIAL] XML-Files in Flash einlesen+weiter verarbeiten Steuerung zwischen Zeitleisten & Movieclips [TUTORIAL] MP3-Player (+XML) [TUTORIAL] MP3-Player (+XML) Part II |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jul 2001 Ort: Stuttgart
Beiträge: 58
|
hmm, ok... ein wenig dreckig mögens wir ja alle ich nehm mir deinen vorschlag zu herzen HW, aber rein interessehalber würd ich trotzdem gern wissen, wieso setinterval in der function ned tut. @pape, da werden NOCH keine erstellt, aber in dem mc den ich bastel dann |
| | |
| | #7 (permalink) |
| - Registriert seit: Jan 2004
Beiträge: 3.002
|
achso.. hab mich schon gewundert wo das stehen soll... ![]() ähm.. dein setInterval geht vermutlich nicht weil du clearInterval(fader); stehen hast und nicht clearInterval(fad); achso.. und die parameter übergabe ist falsch! muss so heißen: ActionScript:
grz pape
__________________ mfG, Robert Tutorials: [TUTORIAL] XML-Files in Flash einlesen+weiter verarbeiten Steuerung zwischen Zeitleisten & Movieclips [TUTORIAL] MP3-Player (+XML) [TUTORIAL] MP3-Player (+XML) Part II Geändert von pape (09-09-2004 um 16:03 Uhr) |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Jul 2001 Ort: Stuttgart
Beiträge: 58
|
mhh danke! stimmt, sooooo gehts *kugel vor freude* hätt mir aber auch auffallen könne, ... das kommt davon wenn man zuviel bastelt und zu viel nachdenkt, da sieht man den wald vor lauter bäumen ned mehr |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Jul 2001 Ort: Stuttgart
Beiträge: 58
|
nein geht doch noch ned, kriegsch plaque *g er läuft sich zu tode,.. macht quasi den clearInterval ned... wie ist das in flash mit funktionen und wertübergaben?, ... Code: fade = function(fader,modi,objekt) also "fader" hat den inhalt "fade1". dann passiert in der reihenfolge dies: Code: if(modi=="in"){ fader=setInterval(fadeIn, 60, fader, objekt); dann passiert in der reihenfolge das: der fadeIn wird aufgerufen durch setInterval, bekommt die pararmeter wieder übergeben. auch dort: fader müßte doch dann durch die variable fade1 heißen? (so würds dann zumindest in php gehen )so please... ein denkanstoß noch, bitte ![]() traces geben zb. das aus: Code: Fade IN gross_fade0: _level0.werke.bild_gross a: 121.875 gross_fade0 stop gross_fade0 wieso läuft das ******* ding dann nach 100 noch? *verzweifel* Gruß Chris Code: //das ganze nochmal in der übersicht ;)
fadeIn = function (fader,objekt) {
trace("Fade IN: "+ objekt +" a: "+objekt._alpha);
objekt._alpha = objekt._alpha+5; trace(fader);
if (objekt._alpha >= 100) {
clearInterval(fader);
trace("stop");
}
}
fade = function(fader,modi,objekt){
if(modi=="in"){ fader=setInterval(fadeIn, 60, fader, objekt); }
if(modi=="out"){ fader=setInterval(fadeOut, 60, fader, objekt); }
}
//aufruf fade-in zb:
_root.fade("fade1","in",_root.werke["bild_klein1"]); Geändert von Luchs (09-09-2004 um 20:07 Uhr) Grund: ergänzung |
| | |
| | #10 (permalink) |
| Banned Registriert seit: Sep 2003
Beiträge: 2.071
|
ehrlich gesagt ich würds auch so machen wie agedoubleu aber zu deinem letzten beitrag da stimmt die syntax nicht: ActionScript:
allerdings wie gesagt ich würds mit einem on enter frame machen wie HW und mit set intevall in functionen hab ich schon schlechte erfahrungen gemacht. gruss Sascha |
| | |
| | #12 (permalink) | ||
| Neuer User Registriert seit: Jul 2001 Ort: Stuttgart
Beiträge: 58
| Zitat:
Code: //das ganze nochmal in der übersicht ;)
fadeIn = function (fader,objekt) {
trace("Fade IN: "+ objekt +" a: "+objekt._alpha);
objekt._alpha = objekt._alpha+5; trace(fader);
if (objekt._alpha >= 100) {
clearInterval(fader);
trace("stop");
}
}
fade = function(fader,modi,objekt){
if(modi=="in"){ fader=setInterval(fadeIn, 60, fader, objekt); }
if(modi=="out"){ fader=setInterval(fadeOut, 60, fader, objekt); }
}
//aufruf fade-in zb:
_root.fade("fade1","in",_root.werke["bild_klein1"]);[/AS] Zitat:
![]() naja so, oder so... wenn ich irgendwo das setInterval mal sinvoll einsetzen wollen würde, müßte ich mich wieder mit der problematik auseinandersetzen, also kann man das auch gleich klären, wäre nett wenn ihr euch da mal versucht reinzudenken. | ||
| | |
| | #13 (permalink) |
| Neuer User Registriert seit: Jul 2001 Ort: Stuttgart
Beiträge: 58
|
Hi jungs, also ich habs dann mal probiert auf HW's weise, auch dort habe ich n problem, da sich nicht verstehe: Code: function fadeIn(fader,objekt) {
trace("fader: "+fader);
trace("obj: "+objekt);
trace("obj-a: "+objekt._alpha);
objekt._alpha+=20;
//_global.ref = this;//Referenz setzen auf dieses Obj
_level0.createEmtpyMovieClip("watcher",1);//leeren MC erstellen
_level0.watcher.onEnterFrame = function(){//auf diesen MC einen onEnterFrame-Event legen
objekt._alpha += 5; //kontinuierlich den Alphawert des MCs erhöhen
trace("Fade in: "+ objekt._alpha);
if (objekt._alpha >= 100) {//wenn 100 Prozent erreicht
delete _level0.watcher.onEnterFrame;//den onEnterFrame-Event wieder löschen
_level0.watcher.removeMovieClip();//und den MC wieder löschen
trace("clear Fade in");
}else{ trace("shit"); }
}
}
//aufruf
_root.fadeIn("gross_fade"+i,_root.werke.bild_gross); das macht er noch (an dem richtigen bild) -> objekt._alpha+=20; das macht er nicht mehr -> trace("Fade in: "+ objekt._alpha); als trace bekomm ich nur das -> Code: fader: gross_fade0 obj: _level0.werke.bild_gross obj-a: 0 wo ist denn da der fehler? ich denke das es ned sein düfte, aber sind level0 und _root unterschiedliche "orte"? |
| | |
| | #15 (permalink) |
| Neuer User Registriert seit: Jul 2001 Ort: Stuttgart
Beiträge: 58
|
Also... ich habe jetzt die oberste Variante, die von HW und noch ne dritte mit nem setinterval ausprobiert, alle drei leiden unter der selben symptomatik: wenn ich sie in ner for schleife aufrufe, laufen se sich tot. wenn ich sie einzeln aufrufe funzen sie bestens. ich find das escht eijenartig. ich könnte mir vorstellen das da der inhalt der löschvariable für die jeweilige funktion (setinterval, onframeevent,..) überschrieben wird, aber hmm. *fieps* hilfe? |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |