Autor | Zpráva | ||
---|---|---|---|
RobertH Profil |
#1 · Zasláno: 20. 10. 2011, 12:10:06
Zdravim,
potřeboval bych nastavit počet opakování animace pomocí AS2. Příklad: Mám banner (6 s.), který potřebuju aby se opakoval max. 5x (30 s.). Uměl by mi někdo pomoc? |
||
weroro Profil |
#2 · Zasláno: 21. 10. 2011, 18:09:12 · Upravil/a: weroro
Vytvor si novú vrstvu cez celú animáciu a napíš do nej tento ActionScript:
var MaxPlays:Number = 3; // Maximálny počet možných prehraní animácie if (this.vars.plays == undefined) { this.createEmptyMovieClip ("vars", this.getNextHighestDepth ()); this.vars.plays = 1; } else if (this.vars.plays < this.MaxPlays) { this.vars.plays++; } else { // Sem sa píše akcia ktorá sa má vykonať, keď sa animácia prehrá tolko krát koľko jej bolo zadefinované napr. this.stop(); } // edit alebo ma práve teraz napadlo ešte jedno optimálnejšie riešenie (Ospravedlňujem sa za úpravu ale sedím na pive a píšem to z hlavy :) ) Vytvor si novú vrstvu cez celú animáciu a napíš do nej tento ActionScript: var MaxPlays:Number = 5; _root.plays = _root.plays == undefined ? 1 : _root.plays += 1; _root.plays > _root.MaxPlays ? this.stop () : null; // ked sa animácia prehra urceny pocet krat, tak sa zastavi na prvom snimku |
||
Časová prodleva: 4 dny
|
|||
RobertH Profil |
#3 · Zasláno: 25. 10. 2011, 09:35:48
Díky za pomoc, něco podobného jsem si už našel na netu, ale to mi bohužel google AdWords zamítnul z důvodu "nepřijatelné delky animace", limit je 30 s., já mám po třech opakování 24 s., tak jsem zkusil tu animaci 3x zkopírovat za sebou ve flashi a prošla, tak teď zkusim ještě ten skript od tebe.
Kdyby se jedno pouze o jeden banner, tak to neřeším, ale kampaň má cca 80 bannerů a nechce se mi u každého kopírovat framy :( |
||
RobertH Profil |
#4 · Zasláno: 27. 10. 2011, 09:35:40
Tak ani takto banner neprošel přes google, ale co jsem si všimnul, že po zastavaní animace se mi stále hýbe pozadí, které mám udělané v jednom frame aby se mohlo stále opakovat, dá se i to ňák zastavit?
|
||
weroro Profil |
#5 · Zasláno: 27. 10. 2011, 11:21:59
A musí to stáť na prvom frame? Nestačí namiesto
this.stop(); unloadMovie(this); |
||
RobertH Profil |
#6 · Zasláno: 28. 10. 2011, 12:31:40
Bohužel ano, musí zůstat stát na prvním frame.
|
||
weroro Profil |
#7 · Zasláno: 28. 10. 2011, 18:31:05 · Upravil/a: weroro
Tak v tom prípade, ak musí zastať stačí predsa použiť moju prvú verziu scriptu.
var MaxPlays:Number = 3; // Maximálny počet možných prehraní animácie if (this.vars.plays == undefined) { this.createEmptyMovieClip ("vars", this.getNextHighestDepth ()); this.vars.plays = 1; } else if (this.vars.plays < this.MaxPlays) { this.vars.plays++; } else { this.stop(); mc.gotoAndStop(1); } Kde mc je názov inštancie (instance name) toho movieclipu v ktorom máš animáciu ktorá sa prehráva aj keď banner stojí na prvom snímku. Treba zastaviť aj tú vnorenú animáciu. |
||
Časová prodleva: 12 let
|
0