[flash] actionscript of motion tween ?

Pagina: 1
Acties:

  • whitehouse
  • Registratie: Maart 2000
  • Laatst online: 22:31
ik heb een punt (line) die ik wil vergroten over de hele breedte :

for(x=0; x<550; x++)
{
setProperty("liner", _width, x);
if (x eq 550)
{
gotoAndStop(2);
}
}

is dit slim ? of kan ik beter een motion tween gebruiken in flash ?

en als ik bovenstaande code toepas, staat de lijn er in 1 keer.. waarschijnlijk telt hij heeeel snel tot de 550 .. hoe rem ik dit af ?

[ Voor 7% gewijzigd door whitehouse op 17-01-2003 14:18 ]


Verwijderd

Dan kun je beter motion tween gebruiken. Is makkelijker (volgens mij kun je die berekening niet verlangzamen).

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

mc'tje maken die onEnterFrame een iteratie van je motion aanroept. Op zich is dat vrij makkelijk, en ik verbeeld me ergens ook dat je dan vloeiendere bewegingen krijgt dan wanneer je flash een motion tween laat doen. Maar misschien is dat gelul.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • whitehouse
  • Registratie: Maart 2000
  • Laatst online: 22:31
iteratie van mijn motion ? what's that ?

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

Lees Chapter 7 Motion, Tweening, and Easing van het boek van Robert Penner en je weet alles over tweenen.. ( tip: koop ook het boek....)

"You're only as good, as what you did last week."


  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 20:03

GrimaceODespair

eens een tettenman, altijd ...

Het voordeel van motion tween is dat je de kenmerken achteraf gemakkelijk kan veranderen. Bij Actionscript zal je óf je AS opnieuw moeten schrijven, óf een heel generieke AS maken. Het is wel zo, als je nou eenmaal een mooie tween lib hebt voor AS, dat het gemakkelijker is om het daarmee te doen.

Ik heb nu eigenlijk nog altijd niks zinnigs gezegd, bij deze dus: het maakt niet zo veel uit (zeker niet in snelheid, want Flash kan echt wel een boel AS verwerken in een frame, that is, als je processor zich niet stukbijt op de rest van je film).

Je moet ook goed in je achterhoofd houden dat Flash tijdens het uitvoeren van je AS geen grafische weergave aanpast. Dat wil dus zeggen dat alleen het resultaat van je AS te zien is (AS van een frame wordt berekend voordat het frame wordt weergegeven). Je moet er dus voor zorgen dat per frame een stap wordt gezet.

[ Voor 23% gewijzigd door GrimaceODespair op 17-01-2003 14:51 ]

Wij onderbreken deze thread voor reclame:
http://kalders.be


  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

GrimaceODespair schreef op 17 januari 2003 @ 14:48:
Je moet ook goed in je achterhoofd houden dat Flash tijdens het uitvoeren van je AS geen grafische weergave aanpast. Dat wil dus zeggen dat alleen het resultaat van je AS te zien is (AS van een frame wordt berekend voordat het frame wordt weergegeven). Je moet er dus voor zorgen dat per frame een stap wordt gezet.
En daar was updateAfterEvent() :)

"You're only as good, as what you did last week."


Verwijderd

whitehouse schreef op 17 January 2003 @ 14:17:
ik heb een punt (line) die ik wil vergroten over de hele breedte :

for(x=0; x<550; x++)
{
setProperty("liner", _width, x);
if (x eq 550)
{
gotoAndStop(2);
}
}

is dit slim ? of kan ik beter een motion tween gebruiken in flash ?

en als ik bovenstaande code toepas, staat de lijn er in 1 keer.. waarschijnlijk telt hij heeeel snel tot de 550 .. hoe rem ik dit af ?
Even voor de duidelijkheid, flash is een framebased app. Dat betekent dat je voor (of na) elk frame je berekeningen doet, en dan gaat tonen. Wat jij nu doet is binnen 1 frame de helebeweging doen, en dan verder.
Welke versie van flash?

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 20:03

GrimaceODespair

eens een tettenman, altijd ...

Ik moet eerlijk zeggen dat ik hem niet kende, heb er dus geen ervaring mee. Maar is dat niet gevaarlijk? Ik bedoel: kan je je framerate zo niet ontzettend omlaag halen?

Wij onderbreken deze thread voor reclame:
http://kalders.be


  • whitehouse
  • Registratie: Maart 2000
  • Laatst online: 22:31
Flash MX

  • whitehouse
  • Registratie: Maart 2000
  • Laatst online: 22:31
updateafterevent() werkt ook niet ..
ik krijg nog steeds gelijk een streep van 750px te zien

for(x=0; x<750; x++)
{
setProperty("liner", _width, x);
updateAfterEvent();
}

[ Voor 6% gewijzigd door whitehouse op 17-01-2003 16:00 ]


Verwijderd

Dat werkt dus niet.....for loops worden voor elk frame uitgevoerd...

  • whitehouse
  • Registratie: Maart 2000
  • Laatst online: 22:31
hoe zou ik dan zo'n constructie maken ?

Verwijderd

daarvoor hebben mc's een onEnterFrame event.....dat zou je op het eerste frame van het mc zo kunnen zetten :

Flash ActionScript:
1
2
3
4
5
6
7
8
this.onEnterFrame = function(){
    this.x++
    if(this.x<550){
        this._x = this.x;
    }else{
        this.x = 0;
    }
}

Verwijderd

en toen was het stil... :)
Pagina: 1