PDA

Volledige versie bekijken : createEmptyMovieClip combineren met onRelease


Bartj3
%Europe/Berlin %623 %2009, 14:57
ik wil buttons maken van externe gifs, zodat de buttons aan te passen zijn zonder in de flash te duiken maar gewoon door de gif aan te passen.
De makkelijkste manier om dit te doen leek me om movieclips aan te maken of aan te passen en de gif daar in te laden.
met deze code lukt het inladen wel, maar de movieclip lijkt niet op de onRelease te reageren.


filejpg = function(picName) {
mc_play.loadMovie(picName);
mc_play._x = 100;
mc_play._y = 100;
}

function call_Img(name) {
if(name == playKnop){
filejpg("interface/btn_play.gif");
}
}

mc_play.onRelease = function() {
trace ("Knop ingedrukt");
}

this.onLoad = function() {
call_Img(playKnop);
}

var mc_play:MovieClip = this.createEmptyMovieClip("mc_play", this.getNextHighestDepth());


ik bedacht me dat de movieclip misschien nog niet bestaat als ik de onPress er aan probeer te koppelen, maar als ik al een lege movieclip met de naam mc_play op de stage zet (wat sowieso makkelijker zou zijn omdat ik dan niet alles in actionscript hoef te positioneren) en er de image aan attach werkt het ook niet.

Jan
%Europe/Berlin %642 %2009, 15:25
ik bedacht me dat de movieclip misschien nog niet bestaat als ik de onPress er aan probeer te koppelen, maar als ik al een lege movieclip met de naam mc_play op de stage zet (wat sowieso makkelijker zou zijn omdat ik dan niet alles in actionscript hoef te positioneren) en er de image aan attach werkt het ook niet.
http://www.flashfocus.nl/forum/showpost.php?p=353387&postcount=3
Het merendeel van de variabelen/properties en dus ook de eventhandlers van een movieclip worden gewist als je nieuwe content in die movieclip laadt.

Groeten,
Jan

eriknoorland
%Europe/Berlin %647 %2009, 15:32
Het komt door je loadMovie, je moet iets anders gebruiken om je plaatje in te laden. kijk eens naar loadClip in de documentatie van flash.

digitalecartoons
%Europe/Berlin %655 %2009, 15:44
Heb hier ook mee geexperimenteerd. Eerst wordt een clip 'container' aangemaakt. Binnen 'container' de clip 'image'. In 'image' wordt het beeld geladen, maar de events in de hoofdclip 'container' blijven behouden in dit geval (omdat het beeld in 'image' wordt geladen en niet in 'container'). Op de hoofdclip wordt dan de onRelease geplaatst.

var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
var image:MovieClip = container.createEmptyMovieClip("image", this.getNextHighestDepth());
image.loadMovie("image.jpg");
container.onRelease = function() {
trace(image);
//output: _level0.container.image
};

Bartj3
%Europe/Berlin %670 %2009, 16:05
Helemaal gelukt met behulp van Jan's tutorial,
bedankt voor de snelle reactie en tips iedereen!