PDA

Volledige versie bekijken : Loadmovie in een movieclip werkt niet?


tripwire
%Europe/Berlin %606 %2005, 15:33
Hi mensen,

Ik loop even vast op een probleempje, hoop dat jullie mij verder kunnen helpen.

Het begrip loadmovie snap ik, en het werkt als ik een simpele button maak.
Maar in mijn fla heb ik buttons met een rollover/rollout etc etc, een movieclip dus, als ik daar in een het commando zet dat er een swf ingeladen moet worden werkt dit niet.

via google en flashfocus kon ik dit probleem niet vinden, vandaar dat ik toch maar even post ;)


bedankt voor jullie reactie's
Grt, trip

The_One
%Europe/Berlin %618 %2005, 15:50
hoi,

Wil je een SWF inladen in je btns [dus je MCs]? Gebruik je een container [= een het doel MC]? Wat is het AS dat je nu hebt?

Zou je wat duidelijker kunenn zijn, en wat meer info kunnen geven? :)

tripwire
%Europe/Berlin %693 %2005, 17:38
uhmm oke ff duidelijker :)


Ik heb een .fla die een website moet voorstellen, daarin zijn movieclip buttons gezet ivm rollover effecten enzo.
Die button geef ik als AS on (release) {loadMovie("empty-test.swf","empty");} mee.
De container waar de het geladen moet worden geef ik de instance naam 'empty'.

eigenlijk werkt de code prima bij een normale button(dus zonder movieclip properties).

alleen als ik de code doe bij een button die als movieclip staat in de .fla dan werkt het niet.

hoop dat je zo weer iets meer duidelijkheid hebt gekregen.

Finesky
%Europe/Berlin %720 %2005, 18:17
Je kan ook geen on (release) gebruiken bij een movieClip button.


this.jouButton.onRelease = function() {
loadMovie("empty-test.swf","empty");
};


Probeer het zo maar eens:).

Roenes
%Europe/Berlin %721 %2005, 18:19
Je kan ook geen on (release) gebruiken bij een movieClip button.En waarom zou dat niet kunnen? Kan wel degelijk hoor :)

Finesky
%Europe/Berlin %732 %2005, 18:34
Oh oh dit gaat me reputatie punten kosten:P.
Ik heb echt altijd gedacht dat het op de andere manier moest.
Bedankt voor je rectivicatie:).

tripwire
%Europe/Berlin %758 %2005, 19:11
@roenes,

Jah lijkt mij ook wel kunnen, maar ik weet echt niet hoe :) kan jij mij in de goede richting helpen?


[QUOTE=Finesky]Je kan ook geen on (release) gebruiken bij een movieClip button.


this.jouButton.onRelease = function() {
loadMovie("empty-test.swf","empty");
};

[QUOTE]

Oke dus je kan gewoon een eigen functie maken net als in php :) das cool.

Waar moet ik dat nu precies plaatsen (die code)
want als ik het zet in de AS window van de button dan overschrijf ik de on (rollover) functies die de button heeft in de movie clip. en als ik het zet waar ook de rollover dingen staan dan krijg ik een foutmelding.
**Error** Symbol=Symbol 63, layer=home box, frame=1:Line 2: Statement must appear within on handler


lijkt ingewikkelde uitleg.. maar jullie pro's snappen vast wat ik bedoel.

Finesky
%Europe/Berlin %837 %2005, 21:05
this.jouButton.onRelease = function() {
loadMovie("empty-test.swf","empty");
};


Als je deze code in de jouButton movieClip zet kan het niet werken, aangezien je dan al IN de movieClip jouButton zit, er kan dan niet meer op geklikt worden.

Je moet de code dus op de root zetten, aangezien daar jouButton staat:).

tripwire
%Europe/Berlin %904 %2005, 22:41
Oke de code staat nu in de root, en inderdaad, die functie die werkt prima, alleen laat hij de rollovers etc niet meer zien van de button movieclip.

ik denk dat ik iets niet helemaal begrijp... we houden gewoon vol haha.


Dit is toch een normale gang van zaken lijkt mij om een button te maken die een rollover effect heeft?
Ik heb een graphic die in laat zien als movieclip, in de movieclip van die graphic gebeurd een rollover/rollout actie. doe ik iets structureel helemaal verkeerd?

Finesky
%Europe/Berlin %006 %2005, 01:09
Hij kan het ook nog niet doen omdat we flash nog niet hebben verteld dat er wat moet gebeuren met een rollOver.

Dit kan, ervan uitgaande dat in de jouButton movieClip de animatie staat zo;


this.jouButton.onRollOver = function() {
//Hier de actie die moet volgen bij een rollOver
};


En voor de rollOut;


this.jouButton.onRollOut = function() {
//Hier de actie die moet volgen bij een rollOut
};


Ook deze acties moeten op de root komen te staan.

tripwire
%Europe/Berlin %400 %2005, 10:37
Aww allright, dus eigenlijk maak je in de "root" een compleet script voor de hele flash movie. Ik was in de veronderstelling dat je dat echt per item moest doen :)

Ik ben net wakker, maar ik zal zo ff snel proberen of ik het nu wel voorelkaar krijg.
Laat het zo nog wel ff weten ;)

gbolssens
%Europe/Berlin %404 %2005, 10:42
Aww allright, dus eigenlijk maak je in de "root" een compleet script voor de hele flash movie. Ik was in de veronderstelling dat je dat echt per item moest doen

Veel developers zetten alle script op één frame op één layer. De verschillende buttons en mc's spreek je dan aan via hun instance names.

Je kunt ook alle code zetten daar waar hij zijn werk moet doen ("scattered scripting" wordt dat ook wel eens genoemd) en dat werkt even goed. Het is alleen veel minder overzichtelijk.


greetz,
GB

tripwire
%Europe/Berlin %419 %2005, 11:03
Je kunt ook alle code zetten daar waar hij zijn werk moet doen ("scattered scripting" wordt dat ook wel eens genoemd) en dat werkt even goed. Het is alleen veel minder overzichtelijk.
Ik houd wel van overzicht dus laat ik alles maar bij elkaar houden :) thx voor je op merking iig! (ik kwam niet meer bij toen ik je handtekening zag... eat more beaver hahaha)


Oke het staat er allemaal in :)


//Button home
this.home.onRelease = function() {
loadMovie("empty-test.swf","empty");
};
this.home.onRollOver = function() {
gotoAndPlay(5);

};
this.home.onRollOut = function() {
gotoAndPlay(16);

};


Op dit moment doet ie bij een rollover scene 1 op nieuw spelen vanaf frame 5. dat klopt want ik verwijs blijkbaar naar "this".
De button heeft de instance naam "home" maar als ik dat doe dan doet ie niks.
Hoe geef ik aan dat hij die rollover functie de button movieclip afspeeld?
In de help staat hierover niets eigenlijk, alleen dat je een andere scene kan laten afspelen gotoAndPlay("scene2",1);

ik begin het te begrijpen maar het is nog niet helemaal duidelijk.

Finesky
%Europe/Berlin %490 %2005, 12:46
Zo zal het lukken;


this.home.onRollOver = function() {
home.gotoAndPlay(5);

};
this.home.onRollOut = function() {
home.gotoAndPlay(16);

};


Waar je nu alleen wel voor moet oppassen als je de movieClip die animeerd als knop gebruikt is het volgende;

Flash herkent een rollOVer als je met de muis op de movieClip knop gaat staan, op dat moment gaat de timeline in de movieClip spelen.

Stel je hebt een vierkant in die movieClip die van links naar rechts beweegt, zal het vlak wegschuiven waardoor er geen rollOver meer plaatsvind.

Dan gaat hij dus direct naar frame 15.

Je kan dit oplossen door niet de movieClip zelf als knop te gebruiken, maar daar alleen de animatie in te stoppen.

Ik bedoel het volgende;

1. Maak een nieuw layer aan BOVEN de layer waar de movieClip button in staat,
en zet de layer met de movieClip button opslot.
2. Trek een vlak over de bestaande movieClip button.
3. Selecteer dit vlak en druk op F8 om er een movieClip van te maken.
4. Geef hem de instance name mijnKnop.
5. Nu gaan we moet je de Alpha daarvan op 0 zetten, dit kan in het properties panel
bij Coler > Alpha.
5. Nu gaan we ervoor zorgen dat flash reageerd op mijnKnop en niet meer op de
movieClip waar de animatie in staat.


this.mijnKnop.onRollOver = function() {
home.gotoAndPlay(5);

};
this.mijnKnop.onRollOut = function() {
home.gotoAndPlay(16);

};


Nu kan de movieClip animatie heen waar die wil, maar de rollOver zal blijven totdat de muis van de knop word afgehaald:).

tripwire
%Europe/Berlin %563 %2005, 14:31
gaaf, ik snap het :)
Bedankt voor je zeer heldere uitleg. ik ga nu snel mn fla volbouwen met buttons die het doen haha.
Ik denk dat ik een grote stap verder ben hoe dat action script nu eigenlijk werkt, met aanroepen van dingen enzo. toch een heel belangrijk iets!


thx, cu around.
Tripwire.