[FLASH] Actionscript fade in/out script

Ik heb hier een script om in en out te faden van flashfocus gehaald. Maar nu is het probleem dat hij in-fade en dan weer out-fade. Maar ik zou alleen willen dat hij infade en dan stopt. Wel nog rekening houdende met de delay en de snelheid.

Hoe en waar moet ik de code dan aanpassen ?

Dank.

[code:1:3752729a29]
onClipEvent (load) {
_alpha = 0; // maak mc onzichtbaar
func = null; // functie die uitgevoerd wordt
fS = 4; // snelheid van faden
delay = 500; // wachttijd (in milliseconden!)
// wacht-functies
setWait = function () {
endTime = getTimer()+delay; // we wachten 3 seconden
func = checkWait; // ga verstreken tijd checken
}
checkWait = function () {
// check verstreken tijd
if (getTimer()>endTime) func = fadeInOut;
// zodra die langer dan 3 seconden is, ga faden
}
fadeInOut = function () {
// we gaan faden
// fS bepaalt of we gaan in- of uitfaden
_alpha += fS;
if (_alpha<=0||_alpha>=100) {
fS *= -1; // draai teken fade-snelheid om
func = setWait; // ga weer wachten
}
}
//
func = setWait; // wacht
}
onClipEvent (enterFrame) {
func(); // voer ‘func’ uit
}
[/code:1:3752729a29]

Nou weet ik niet helemaal welke gedachtengang je hebt over hoe het precies worden moet en hoe het is, maar is een fade niet makkelijker / efficienter te regelen via een 'gewone' animatie, gewoon van zichtbaar naar onzichtbaar? Dat hoeft toch niet met ActionScript - uitgezonderd stoptekens en speeltekens en dergelijke - te geschieden?

Deze functie komt mij een beetje heel, heel erg Dreamweaverig over voor iets wat erg simpel zijn kan…

Konijn, op www.flashcomponents.com heb ik de alpha-fader component gedownload. Deze is gratis en kan je dit alles besparen.

De bedoeling van het scipt is (en wat ik ook wil) is dat dmv actionscript een MC wordt gefade als je de site opent. Met deze code op een mc te zetten lukt dat [code:1:2f368f586e] onClipEvent (load) { _alpha = 0; // maak mc onzichtbaar func = null; // functie die uitgevoerd wordt fS = 4; // snelheid van faden delay = 500; // wachttijd (in milliseconden!) // wacht-functies setWait = function () { endTime = getTimer()+delay; // we wachten 3 seconden func = checkWait; // ga verstreken tijd checken } checkWait = function () { // check verstreken tijd if (getTimer()>endTime) func = fadeInOut; // zodra die langer dan 3 seconden is, ga faden } fadeInOut = function () { // we gaan faden // fS bepaalt of we gaan in- of uitfaden _alpha += fS; } // func = setWait; // wacht } onClipEvent (enterFrame) { func(); // voer 'func' uit } [/code:1:2f368f586e]

Maar nu heb ik er een probleem mee !!
Als ik de flash movie lang genoed (5 min ofzo) laat openstaan, dan fade alles weer uit en blijft alles dan ook uitgefade.

Wat is er dan mis met dat script ? Het zal aan die tijdfunctie liggen denk ik.
Hoe kan ik nu maken dat de alpha op die elementen op 100 blijft en de rest van de functie behoud.
Delay en Fs (fade speed) ?

Dank

(Misschien heb ik ergens overheengelezen of ik begrijp het echt niet. Ik ben even heel nieuwsgierig, maar waarom precies dit bereiken door middel van ActionScript?)

Als je van delay een negatief getal maakt zal die toch nooit uitfaden omdat de if (getTimer()>endTime) func = fadeInOut; nooit groter kan zijn als dit gezegd is: endTime = getTimer()+delay;

Of zit ik daar dan weer verkeerd bij…

Dat is toch zeer gemakelijk !! en overzichtelijk. Plaats het op je MC en klaar is ... . Ik vind het gemakelijker dan eerst een tweeën te maken en de fade aan te passen. Nu kan je het getal veranderen. Dat is toch veel properder en sneller vind ik.

Weet je toevallig mss het antwoord op men probleem :? .

tweeen levert een VEEL groter flash bestand op dan via AS.

mmm… ff hardop gedacht mis ke gewoon de stop-functie in je as

http://www.fluid.com/ heeft daarvoor wat code voor geschreven die erg goed werkt. ga naar http://www.fluid.com/ klik op R&D klik op EXPERIMENTS en dan DOWNLOAD SOURCE check ook gewoon de playground kan je ff kijken wat het doet...

zie ook: http://flashfocus.nl/forum/topic.asp?TOPIC_ID=48285

Ik zou graag de code behouden die ik hier gepost heb. ( met de delay).

Hoe kan ik nu maken dat die functie stopt met loopen als alpha 100 is ?
Dank.

Verander dit eens: [code:1:7195194747]if (getTimer()>endTime) func = fadeInOut; [/code:1:7195194747] in: [code:1:7195194747]if (_alpha==100) { stop(); }[/code:1:7195194747] of zoiets....

Dat doet het niet WebJ. Ik ben er trouwens nog altijd niet uit :oops: .

Dus de loop stopt nog altijd niet met spelen als alpha 100 is en na 5 min zie ik niets meer van de MC.

Ik heb iets aangepast

[code:1:f63f5f649b]
onClipEvent (load) {
_alpha = 0; // maak mc onzichtbaar
func = null; // functie die uitgevoerd wordt
fS = 5; // snelheid van faden
delay = 100; // wachttijd (in milliseconden!)
// wacht-functies
setWait = function () {
endTime = getTimer()+delay; // we wachten 3 seconden
func = checkWait; // ga verstreken tijd checken
}
checkWait = function () {
// check verstreken tijd
if (getTimer()>endTime) func = fadeInOut;

    // zodra die langer dan 3 seconden is, ga faden
&#125;
fadeInOut = function &#40;&#41; &#123;
    // we gaan faden
    // fS bepaalt of we gaan in- of uitfaden
    _alpha += fS;
    if &#40;_alpha&gt;=100&#41; &#123;
    //fS *= -1; // draai teken fade-snelheid om
	stop&#40;&#41;;
    func = setWait; // ga weer wachten
   &#125;
&#125;
//
 func = setWait; // wacht 

}
onClipEvent (enterFrame) {
func(); // voer ‘func’ uit
}

[/code:1:f63f5f649b]
Dat heb ik terug zichtbaar gezet ( niet meer als commentaar) en er staat een stop tussen.
Stopt de loop nu met loopen ?

[code:1:f63f5f649b]
if (_alpha>=100) {
//fS *= -1; // draai teken fade-snelheid om
stop();
func = setWait; // ga weer wachten
}
[/code:1:f63f5f649b]

Maar.... dat is toch logisch....?

je fade in… _alpha wordt groter dan 100, dus fs wordt negatief: resultaat: uitfaden…
_alpha wordt kleiner en kleiner en kleiner… dus is ie nooit meer zichtbaar…

Als je fs nu eens op 0 zet als _alpha groter is dan 100… dan stopt ie toch gewoon met infaden… en hij fade niet uit…

Wil je toch weer uitfaden… dan laat je op het gewenste moment fs -4 worden ofzo… dan fade je weer uit?

Begrijp ik niet wat jij wilt bereiken misschien?

// off topic

Zeg Peter… moet ik me zorgen gaan maken als ik jouw onderschrift lees?

// /off topic

[quote:162847eeec="konijn"]Ik zou graag de code behouden die ik hier gepost heb. ( met de delay).

Hoe kan ik nu maken dat die functie stopt met loopen als alpha 100 is ?
Dank.[/quote:162847eeec]

kan ik begrijpen maar als je de code van fluid.com ziet dan kan je in milisecondes aangeven hoelang het moet duren dus das geen probleem…