Autor Zpráva
lucie12
Profil *
ahoj, jsem s flashem uplně na začátku a potřebovala bych poradit. Vím jak na hlavní časové ose pomocí gotoAndPlay spustit určitý snímek v movieclipu, bohužel ale nemůžu přijít na to, jak tlačítko v movie clipu přemluvit, aby animace pokračovala na druhém snímku hlavní osy.
Nemusí to být nutně tlačítko...Mám první snímek zastaven, přehraje se celý dlouhý movieclip a potrebuji aby se animace po přehrátí movie clipu přesunula a pokračovala na druhém snímku hlavní osy.
Diky moc za radu
Dredie
Profil *
Predpokladejme, ze mas movieClip myMCL na hlavni casove ose, po kliknuti na movie clip se ma hlavni casova osa posunout na snimek 2. V tomto pripade pouzij nasledujici skript, ktery strcis na 1. frame hlavni casove osy (jako veskery jiny skript):

this.myMCL.onRelease = function():Void{
this._parent.gotoAndPlay(2);
};

- tohle je relativni adresovani. Keyword this oznacuje "tuto" casovou osu, tzn. ze pokud je skript na hlavni casove ose, prvni radek this.myMCL adresuje: tato casova osa(hlavni) na ktere je myMCL. Uvnitr funkce jsi jiz zamereny na this.myMCL, tudiz slovicko this uvnitr funkce oznacuje casovou osu myMCL. Pro vyskoceni o jednu uroveni vys musis tedy pouzit _parent (this._parent znamena tedy nadrazena casova osa teto casove osy, v pripade vyse zmineneho skriptu je to casova osa myMCL). Muzes pouzit i aboslutni cesty, v tom pripade by sklript vypadal:

_root.myMCL.onRelease = function():Void{
_root.gotoAndPlay(2);
};

ale tohle neni moc dobre reseni predevsim pokud uvazujes o tom ze tento swf bude nacitan do jineho swf. Relativni cesty jsou jistejsi, ale trochu "problemovejsi" na pochopeni.

D.
lucie12
Profil *
diky..muzu se jeste zeptat, jak by to vypadalo, kdyby to nemelo byt podminene kliknutim na MCL, ale automaticky po prehrati celeho movie clipu by se mela animace posunout na druhy snimek hlavni casove osy?
Dredie
Profil *
V takovem pripade muzes skript dat na posledni frame uvnitr casove osy movie clipu jednoduse:

this._parent.gotoAndPlay(2).

Sice to odporuje pravidlu, ze veskery skript ma byt na prvnim framu hlavni casove osy, ale jedine reseni, ktere me napada, je udelat funkci na 1. framu main timeline a tu pak zavolat z movieClipu:

//na prvni frame hlavni osy
function myFunction():Void {
this.gotoAndPlay(2);
}

//na posledni frame movie clipu
myFunction();

Nicmene si myslim ze to vyjde uplne nastejno, pouze si muzes vsimnout ze na prvnim framu mas nejakou takovou akci a da se tedy predpokladat, ze ji odknekud volas. Duvod je ten, ze pokud mas komplexnejsi skript, popr. udelas nejaky projekt a po mesici ci dvou se k nemu vratis, budes mit hoodne velky problem se zorientovat, pokud bude skript rozhazeny po celem souboru.
lucie12
Profil *
diky moc. Neni to sice nejaky velky projekt, ale budu se drzet pravidel.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0