AS3 removeChild: je galère...: Le DisplayObject indiqué doit être un enfant de l
cs_pisse_froid
Messages postés5Date d'inscriptionsamedi 26 mai 2007StatutMembreDernière intervention24 septembre 2009
-
24 sept. 2009 à 16:54
cs_pisse_froid
Messages postés5Date d'inscriptionsamedi 26 mai 2007StatutMembreDernière intervention24 septembre 2009
-
24 sept. 2009 à 17:07
Bonjour a tous,
sur ce lien vous pouvez télécharger mon fichier zip avec images + fla si vous voulez bien m'aider.
Alors voilà, je suis un gros bébé pleurnichard du flash.
En fait je suis plus designer que codeur, mais je joue régulièrement a l'apprenti sorcier de l'AS3 pour faire chier ma mère qui voulais que je soit poète.
Et là j'ai un problème: J'ai trouvé le moyen d'inclure un "preloader" pour le chargement de chacune des images de ma future galerie. (en bidouillant des tutos je ne vous le cache pas)
Donc imaginez une galerie simple avec par ex 3 boutons, et que chacun des boutons fasse apparaître une image après son préloading. Et ça marche ! -mais pas bien-
J'ai un problème avec les removeChild. flash me dis ça: ArgumentError: Error #2025: Le DisplayObject indiqué doit être un enfant de l'appelant.
at flash.display::DisplayObjectContainer/removeChild()
at flashpreloader_fla::MainTimeline/onrondremove()
mais ça marche quand même un peu quoi ça fait pas tout bugger.
Je sais pas ou les mettre ces removeChild.
Voilà si quelqu'un daigne s'intéresser un peu a cette mélasse, je le remercie chaleureusement d'avance et je le remercierais aussi après.
var myUrlReqROND:URLRequest = new URLRequest("images/rond.jpg");
var myLoaderrond:Loader = new Loader();
////
var myUrlReqCARRE:URLRequest = new URLRequest("images/carre.Jpg");
var myLoadercarre:Loader = new Loader();
////
var myUrlReqOVALE:URLRequest = new URLRequest("images/ovale.jpg");
var myLoaderovale:Loader = new Loader();
[b]// ici c'est les boutons qui font en sorte que quand on appuie sur l'img rond, l'img ovale et l'img carré dégagent.
// ou quand on appuie sur l'img carré, l'img ovale et l'img rond dégagent
// MAIS CA MARCHE PAS BIEN JE CROIS QUE JE FAIS UN PEU NIMPORTE QUOI
// Je sais pas si vous avez une solution un peu plus simple.
/b rond.addEventListener(MouseEvent.MOUSE_DOWN, onrondremove);
function onrondremove(e:MouseEvent){
removeChild(myLoadercarre);
removeChild(myLoaderovale);
carre.addEventListener(MouseEvent.MOUSE_DOWN, oncarreremove);
function oncarreremove(e:MouseEvent){
removeChild(myLoaderrond);
removeChild(myLoaderovale);
ovale.addEventListener(MouseEvent.MOUSE_DOWN, onovaleremove);
function onovaleremove(e:MouseEvent){
removeChild(myLoadercarre);
removeChild(myLoaderrond);
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//là c'est mon loader qui charge l'image avec un rond rouge
rond.addEventListener(MouseEvent.MOUSE_DOWN, onrond);
function onrond(e:MouseEvent){
myLoaderrond.load(myUrlReqROND);
myLoaderrond.contentLoaderInfo.addEventListener(Event.OPEN,showPreloader);
myLoaderrond.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,showProgress);
myLoaderrond.contentLoaderInfo.addEventListener(Event.COMPLETE,showContent);
var myPreloader:Preloader = new Preloader();
function showPreloader(event:Event):void {
addChild(myPreloader);
myPreloader.x = stage.stageWidth/2;
myPreloader.y = stage.stageHeight/2;
}
function showProgress(event:ProgressEvent):void {
var percentLoaded:Number = event.bytesLoaded/event.bytesTotal;
myPreloader.loading_txt.text = "Loading - " + Math.round(percentLoaded * 100) + "%";
myPreloader.rectbar_mc.width = 198 * percentLoaded;
}
function showContent(event:Event):void {
removeChild(myPreloader);
addChild(myLoaderrond);
myLoaderrond.x = 250;
myLoaderrond.y = 250;
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//là c'est mon loader qui charge l'image avec un carré sur david hasselof
carre.addEventListener(MouseEvent.MOUSE_DOWN, oncarre);
function oncarre(e:MouseEvent){
function showContent(event:Event):void {
removeChild(myPreloader);
addChild(myLoadercarre);
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//là c'est mon loader qui charge l'image avec ovale noir
ovale.addEventListener(MouseEvent.MOUSE_DOWN, onovale);
function onovale(e:MouseEvent){