Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: muu kieli: Flash MouseEvent.MOUSE_OVER ja currentFrame

Macro [28.08.2010 17:54:11]

#

Moi taas, jälleen Flashin parissa.

Ongelmana tälläkertaa on sellainen asia, kuin framen numero ja animaation toistosuunnat.

Microsoftin etusivulla on Silverlightillä tehty "systeemi" (Miksi tuota nyt kutsuisi), jonka sitten koitin toteuttaa Flashilla omana versionani. http://fpaste.dy.fi/lmL/dl

Kuten animaatiosta huomaa, niin hiiren liikkuessa jonkin framen päällä se lähtee pyörimään, ja toistuu alusta loppuun ilman pysäytyksiä. Siihen pitäisi saada korjaus. Koodi toimisi mielestäni muuten, mutta if(cFrame == x) ei. Todennäköisesti cFrame ei päivity tuonne?

Entä, jos näytetään framea 80, ja halutaan näyttää 20, niin animaatiohan lähtee pyörimään eteenpäin. Miten saisin sen silloin vaihtamaan suuntaa?

Kenties kannattaisi etsiä Flashiin erikoistunut foorumi, kun täällä ei näitä Flashin taitajia oikein paljon ole.

Blaze [28.08.2010 18:29:11]

#

Macro kirjoitti:

täällä ei näitä Flashin taitajia oikein paljon ole.

Minä oon aina ihmetelly, miks kukaan viihtii tehä yhtään mitään suljetulla alustalla, joka vaatii maksulliset kehitystyökalut.

Lebe80 [28.08.2010 23:35:02]

#

Macro: Selitit tosi epäselvästi, enkä jaksa kaivella flashiä kotokoneelleni.

Mutta mitä ymmärsin selityksistäsi niin yksi sana kaikkiin ongelmiisi on TweenLite.

Sillä saat yhdellä rivillä laitettua movieClippisi animoituna framesta 20-->80 tai 80-->20

Samoin sillä onnistuu kaikki easingit ja movieClippien sulavat liikuttelut.

import com.greensock.*;
import com.greensock.easing.*;
// mc on movieClippisi nimi
TweenLite.to(mc, 1, {frame:80, ease:Linear.easeNone});

Eli kun hiiri viedään movieClippisi päälle pistät koodiin:
TweenLite.to(mc, 1, {frame:80, ease:Linear.easeNone});

ja kun hiiri viedään päältä pois niin:
TweenLite.to(mc, 1, {frame:1, ease:Linear.easeNone});

Macro [30.08.2010 15:55:43]

#

Tuo voisi toimiakkin, ehkä. Lisäsin com-kansion TweenLitestä fla-tiedoston kanssa samaan kansioon -> TweenLiten importus koodin alkuun (Layer 1, frame 1). Sitten muutin vähän eventhandlereitten callback funktioita. Tulos: http://fpaste.dy.fi/4ox/dl

Eli siis, virhettä ei tule, eikä frame vaihdu. En tiedä sitten, teinkö sen oikein.

Sivut ovat eri layereissä, ja ne ovat movieclippejä. Nimet ovat oikein koodissa.

Lebe80 [30.08.2010 22:20:18]

#

Pistä mieluummin johonkin se koodi näkyville, kuten sanoin, en jaksa alkaa asentelemaan kotokoneelle flashiä vain sitä varten, että näen muutaman rivin koodia.

Macro [31.08.2010 15:34:01]

#

import flash.events.MouseEvent;
import flash.events.Event;
import com.greensock.*;
import com.greensock.easing.*;

stop();

function sivuA(evt:MouseEvent):void {
	TweenLite.to(sivu1, 1, {frame:1, ease:Linear.easeNone});
	trace("Sivu 1");
}

function sivuB(evt:MouseEvent):void {
	TweenLite.to(sivu2, 1, {frame:20, ease:Linear.easeNone});
	trace("Sivu 2");
}

function sivuC(evt:MouseEvent):void {
	sivu3.append(TweenLite.to(sivu3, 1, {frame:40, ease:Linear.easeNone}));
	trace("Sivu 3");
}

function sivuD(evt:MouseEvent):void {
	TweenLite.to(sivu4, 1, {frame:60, ease:Linear.easeNone});
	trace("Sivu 4");
}

function sivuE(evt:MouseEvent):void {
	TweenLite.to(sivu5, 1, {frame:80, ease:Linear.easeNone});
	trace("Sivu 5");
}

sivu1.addEventListener(MouseEvent.MOUSE_OVER, sivuA);
sivu2.addEventListener(MouseEvent.MOUSE_OVER, sivuB);
sivu3.addEventListener(MouseEvent.MOUSE_OVER, sivuC);
sivu4.addEventListener(MouseEvent.MOUSE_OVER, sivuD);
sivu5.addEventListener(MouseEvent.MOUSE_OVER, sivuE);

Tuolta näyttää koodit.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta