Travailler sur les Bitmap, ou sur les loaders directement
Bonjour à tous,
Voilà un petit mois que je me forme à FLASH, avec l'AS3 (je n'ai pas connu as1 ni as2).
Et me voilà confronter à une question assez simple.
Lorsque je charge via un loader, une image jpg ou png :
Code:
1 2 3 4
| var monLoader:Loader = new Loader();
var monLoaderInfo:LoaderInfo = monLoader.contentLoaderInfo;
monLoader.load(new URLRequest("monImage.png")); |
Si je veux copier mon image chargée dans un nouveau movieClip
Code:
1 2 3 4 5 6 7
| var monLoader:Loader = new Loader();
var monLoaderInfo:LoaderInfo = monLoader.contentLoaderInfo;
monLoader.load(new URLRequest("monImage.png"));
var monMC:MovieClip = new MovieClip();
monMC = monLoaderInfo.content; |
Cela soulève une erreur, qui indique qu'il y a un problème de type entre Bitmap et MovieClip.
Mais je souhaiterai tout de même travailler avec cette image.
Car Si je crée un objet Sprite ou Bitmap
Code:
1 2 3 4 5 6 7
| var monLoader:Loader = new Loader();
var monLoaderInfo:LoaderInfo = monLoader.contentLoaderInfo;
monLoader.load(new URLRequest("monImage.png"));
var monBitmap:Bitmap= new Bitmap();
monBitmap = monLoaderInfo.content; |
Cela fonctionne, mais je suis incapable de travailler sur mon "monBitmap" en tant qu'objet (movieclip) par exemple,
Code:
1 2 3 4 5 6 7 8 9 10 11
| var monLoader:Loader = new Loader();
var monLoaderInfo:LoaderInfo = monLoader.contentLoaderInfo;
monLoader.load(new URLRequest("monImage.png"));
var monBitmap:Bitmap = new Bitmap();
monBitmap = monLoaderInfo.content;
var unExemple:Shape = new Shape();
monBitmap.addChild(unExemple); |
Cela ne marchera pas, car on ne peut ajouter un enfant à un objet de type Bitmap
Donc pour palier à ce problème, la solution est simple :
Pourquoi essayer de recuperer l'objet Bitemap alors qu'on peut se servir du Loader directement :
Code:
1 2 3 4 5 6
| var monLoader:Loader = new Loader();
var monLoaderInfo:LoaderInfo = monLoader.contentLoaderInfo;
monLoader.load(new URLRequest("monImage.png"));
//unExemple est un shape crée juste avant
monLoader.addChild(unExemple) |
Çela fonctionnerai très bien, car l'objet Loader hérite de tel façon :
Loader => DisplayObjectContainer => InteractiveObject => DisplayObject => EventDispatcher => Object
Donc ma question au final est (Roulement de tambours !!!!) :
Est ce "mauvais" de travailler avec les loaders directement, ou est ce que je suis le seul à me prendre la tête à ce point ? :)
Car pour l'instant, pour chaque loader que je crée, je copie le bitemap dans un autre objet, et je détruit en faisant
Code:
1 2
| monLoader.unload();
monLoader = null; |
Pour que lorsque le ramasse miette passera, il ne restera plus rien ^^.
Merci de vos réponses constructives :)
Bonne après midi à tous !
Si vous avez des questions :)