PDA

Volledige versie bekijken : "new Loader" voor swf's op verschillende frames


Rvdb
%Europe/Berlin %679 %2009, 16:18
Beste flashers

Ik ben bezig met een as3 project. De indeling van de site bestaat uit een main swf om meerde swf's als losse pagina's in holders te laden, op de tijdlijn van een movieclip.

Als navigatie om naar verschillende pagina's te gaan gebruik ik verschillende keyframes in die losse mc op de hoofdtijdlijn. Ieder keyframe laad zijn eigen "pagina" swf in.

Nu laad ik op frame 2 van die movieclip een stuk tekst, en op de 3e frame van de movieclip een video met behulp van "Loader" met een "new URLRequest".

Waneer ik nu naar frame 2 navigeer in die mc dan komt daar mijn ingeladen tekst keurig te staan, als ik vervolgens naar frame 3 navigeer gaat de ingeladen swf spelen met de video erin. Alleen waneer ik vervolgens weer terug navigeer naar frame 2 "de tekst dus" dan is de video nog te horen.

Alles word dus dubbel ingeladen wat video betreft, omdat de tekst wel iedere keer opnieuw inlaad.

Heeft iemand hier een verklaring voor, bij alle keren dat er een pagina word ingeladen word er gebruik gemaakt van een normale "Loader" met unieke variable.

Groeten Rutger.

Jan
%Europe/Berlin %689 %2009, 16:32
Heeft iemand hier een verklaring voor, bij alle keren dat er een pagina word ingeladen word er gebruik gemaakt van een normale "Loader" met unieke variable.
Tja die vorige loaders gelden voor de hele tijdlijn.
1)Verwijder de vorige loader instances
of:
2)Eigenlijk werk je voor zulke toepassingen best niet met meerdere frames. Gebruik 1 frame en waar je vroeger naar een ander frame ging gebruik nu dan eenBepaaldeInstance.visible=false; en een andere true...

Groeten,
Jan

Rvdb
%Europe/Berlin %764 %2009, 18:21
Ok dus als ik het goed begrijp is het de bedoeling dat alle externe swf files in 1 holder geladen moeten worden waneer zij zichtbaar moeten zijn. dus iets als die gemaakte loader weer weg halen?

Het lijkt me dat op die manier alle pagina's in 1 keer dan ingeladen moeten worden wat de laadtijd niet echt bevorderd.

Wat betreft het inladen van een swf in de holders, het inladen gebeurt momenteel boven 1 frame "op het opject dus eigenlijk", het frame waar naar verwezen word. dan kan de loader van frame 2 toch geen invloed hebben op wat er gebeurd waneer er naar frame 3 word genavigeerd? of heb ik dat mis?

Jan
%Europe/Berlin %767 %2009, 18:25
dan kan de loader van frame 2 toch geen invloed hebben op wat er gebeurd waneer er naar frame 3 word genavigeerd? of heb ik dat mis?
loaders bestaan niet in frames...
Als je swf meerdere frames heeft maar je maakt via actionscript een loader instance aan dan bestaat ie over de hele tijdlijn. Het maakt niet uit of je op het moment van aanmaken van die loader in frame2 of frame137 zit.
Je zou eventueel kunnen proberen om 'lege' movieclips in die frames te zetten, en dan de aangemaakte loader niet aan this(=MainTimeline) 'addchilden' maar in zo'n lege movieclip in het frame waar je op dat moment zit. (zelf nooit zo geprobeerd eigenlijk)
Het lijkt me dat op die manier alle pagina's in 1 keer dan ingeladen moeten worden wat de laadtijd niet echt bevorderd.
Een externe swf laad je in een (aparte) loader instance wanneer dat nodig is. En je maakt hem onzichtbaar of je verwijdert em wanneer ie niet meer nodig is.

Groeten,
Jan

Rvdb
%Europe/Berlin %487 %2009, 11:42
Bedankt voor de reactie, al is het nog steeds niet helemaal gelukt..

dus ik zet het aantal holders die swf's inladen in 1 frame ( met unieke instancenames ) en laad de menu buttons die holders vullen die van toepassing zijn voor die pagina.

ik heb nu dit op mn main tijdlijn staan:


controls_mc.bio.addEventListener(MouseEvent.CLICK, bio);
function bio(Event:MouseEvent):void {

content_mc.play();

var bio =new Loader();
bio.load(new URLRequest("bio.swf"));
content_mc.holder1.addChild(bio)

content_mc.holder2.removeChild(muziek);

}



de button bio in de controls_mc laad dus de bio swf in de content_mc, tegelijkertijd word dan de holder2 geleegd waar eerst muziek in werd geladen toch?

alvast bedankt!