PDA

Volledige versie bekijken : Framelabels aanroepen


CasperL
%Europe/Berlin %683 %2008, 17:23
Hallo,



In AS2.0 gebruikte ik altij framelabels om bv. in een website van pagina te wisselen.
Als je dan een menu_mc had kon je gewoon naar een root framelabel met: _root.gotoAndPlay("framelabel");

Nou gebruik ik dit altijd al maan nu in actionscript 3 werkt dit niet meer en ik heb ongeveer overal gezocht maar kan het nergens vinden.

Kan iemand me hiermee helpen? of is er gewoon een veel gangbaardere manier, dan hoor ik die ook graag.

Alvast bedankt.

Casper

W0utR
%Europe/Berlin %689 %2008, 17:33
http://livedocs.adobe.com/flex/2/langref/flash/display/MovieClip.html#gotoAndPlay()

CasperL
%Europe/Berlin %695 %2008, 17:41
Heel erg bedankt!


Dit heb ik in mijn zoektocht ook al gevonden.
Maar ik wist/weet niet hoe je de scene een naam kan geven, want als ik: gotoAndPlay("frame", "Scene 1");


dit doet hij het niet omdat scene 1 niet bestaad.

Iemand nog suggesties?

Bedankt!

theFlashWizard
%Europe/Berlin %835 %2008, 21:03
Scenes zijn ook niet echt aan te raden. Framelabels werken echter prima, je kan er as3.0 zelfs meer mee, zo kan je zelfs een lijst met bestaande framelabels van een MovieClip opvragen.
Dus ik ben bang dat je zelf wat fout doet.
Misschien kan je laten zien hoe je het geprobeerd hebt?

CasperL
%Europe/Berlin %476 %2008, 12:25
Bedankt voor jullie reacties.

Ik heb dus een mc_menu met buttons erin en ik heb op het hoogste niveau (root) de verschillende pagina's met de verschillende framelabels staan.

Nou ging dat met AS2.0 ongeveer zo:

on (press){

_root.gotoAndStop("framelabel");


Hier verwijs je dus eerst naar het hoogste niveau (_root) en daarna naar het label op dat niveau.


In AS3.0 moet het er ongeveer zo uitzien:


gotoAndStop("framelabel","Scene");

En omdat _root niet meer bestaat neem ik aan dat je dan naar bv Scene 1 moet verwijzen.
Maar hier krijg ik dus een error op, dat deze scene niet bestaad(maar Scene 1 bestaad volgens mij altijd).

p.s. het gaat me dus niet om de buttons zelf en die scripts maar allen om het stukje die naar een label op een hoger niveau of de _root kan verwijzen.

Bedankt weer!

theFlashWizard
%Europe/Berlin %547 %2008, 14:07
de 2de parameter is optioneel, dus je kan gewoon dit doen:
gotoAndStop("framelabel");

CasperL
%Europe/Berlin %575 %2008, 14:49
Ja dit begrijp ik.

Maar op het moment dat je: gotoAndStop("framelabel") doet gaat flash er vanuit dat deze label zich op dezelfde timeline bevind als vanwaar hij aangeroepen word.

En wat ik wil is een framelabel aanroepen wat een paar niveaus hoger zit (in de root).


Bedankt natuurlijk weer!

theFlashWizard
%Europe/Berlin %671 %2008, 17:07
Simpel gezegt, dit hoor je niet te doen. Je hoort eigenlijk nooit naar "boven" te spreken. Dit maakt een object namelijk minder flexibel omdat hij afhankelijk wordt van die parents.
Het is netter een toepasselijk event te dispatchen en de "root" te laten beslissen wat hij met het event doet. Bijv. Naar een ander frame sturen.

Anders kun je via parent een container omhoog aanspreken

mscofield
%Europe/Berlin %609 %2008, 15:38
Dus hoe stel je voor een portfolio te maken in flash?
Gewoon in een enkele scene?

theFlashWizard
%Europe/Berlin %994 %2008, 00:52
Dit topic heeft weinig te maken met je vraag, je kan daarom beter een nieuw topic maken.
Om je vraag kort te beantwoorden; ja. Werken met scenes heeft een aantal vervelende nadelen.

Mr. Black
%Europe/Berlin %422 %2008, 11:08
Dus hoe stel je voor een portfolio te maken in flash?
Gewoon in een enkele scene?
Of nog beter (als het kan): in één enkele frame. Op die manier hou je wel het meeste overzicht. Eventuele animaties laad je dan in via ActionScript. :)

mmrockzz
%Europe/Berlin %479 %2008, 12:31
Ik denk dat hij wil verwijzen naar de root vanuit een mc, hij geeft een fout aan omdat je naar de root moet refereren als een movieclip (Dit hoefde niet in actionscript 2.0)
Bijvoorbeeld (En ik ga ervan uit dat de root de parent is van de movieclip):
var roottimeline:MovieClip = MovieClip(this.parent);

roottimeline.gotoAndPlay("label")Zo roep je de root aan in AS 3.0 (Mocht je daar nog naar op zoek zijn) :)