Bonjour !
Ok , mais comment faire pour dupliquer un clip (ou image) chargé(e) de l'exterieur, et non existant sur la bibliothèque (car transformer son graphique en clip ou bouton dans Flash, c'est le générer dans la bibliothèque).
Le but étant de pouvoir charger une seule fois un clip (ou image) que je veux dupliquer x fois, dans avoir à le recharger x fois : gain de temps (x fois !) et plus astucieux ! Mais je vois pas comment !...
Preuve, cet essai de code, qui marche pas avec duplicateMovieClip() :
Code ActionScript :
_global.cPathSymboles = "C:/plans"; //Chemin contenant le fichier swf
var _fichier = 'micro.swf'; // Exemple de fichier à charger, ici dans C:/plans
var _refContainer:MovieClip; // Container de base des clips à charger
var _mcImgModel:MovieClip; // MovieClip du modèle à dupliquer
var _cptImg:Number = 0; // Compteur de clips dupliqués
var temp:MovieClip; // Référence temporaire du clip dupliqué
// Création des clips vides
_refContainer=_root.createEmptyMovieClip("container", _root.getNextHighestDepth()); // Container général, au dessus de la racine
_mcImgModel = _refContainer.createEmptyMovieClip("mcImgModel", _refContainer.getNextHighestDepth()); // Clip du modèle dans "container"
// Chargement du fichier "c:/plans/micro.swf"
_mcImgModel.loadMovie(_global.cPathSymboles + '/' + _fichier);
// Duplication simple du clip modèle : ne marche pas !!!
temp = _mcImgModel.duplicateMovieClip("mcImg" + 1, _refContainer.getNextHighestDepth());
trace(_mcImgModel); // Retourne _level0.container.mcImgModel
// modification des propriétés du clip cloné (inopérant !)
temp._xscale = 50;
temp._yscale = 50;
temp._x = 0;
temp._y = 0;
trace(temp); // Retourne bien _level0.container.mcImg1 !!
// Autre tentative de duplication, par appel de duplique() sur le clip modèle
_mcImgModel.duplique(2); // Rien ne se produit !!
// Autre essai de duplication, pa onEnterFrame...
_mcImgModel.onEnterFrame = function(){
trace(getBytesLoaded() + "/" + getBytesTotal());
// Lorsque le clip chargé par loadMovie est bien chargé
if (getBytesLoaded() == getBytesTotal()) {
trace("Chargé !!");
this.duplique(3); // Ne marche pas !
delete this.onEnterFrame;
}
}
// Fonction de duplication de clip, qui ne marche pas non plus !!!
function duplique(pNb):Void {
var i:Number;
trace("Duplique...");
for (i=0; i<pNb; i++ ) {
this.duplicateMovieClip("mcImg" + _cptImg, this._parent.getNextHighestDepth());
this._parent["mcImg" + _cptImg]._x = 100 * i;
this._parent["mcImg" + _cptImg]._xscale=50;
trace(this._parent["mcImg" + _cptImg]);
_cptImg++;
}
}
Qui aura la connaissance et le courage pour affronter, en toute modestie, à ce problème sur lequel tout le monde se heurte sans jamais trouver de solution ???