ben je fais exactement ce que tu me dis :) (FP10) :

package app.visitor.display.picture {
        import app.model.ModelList;
        import app.view.picture.PictureDisplay;
        import app.vo.model.PictureVO;

        import fimo.model.FModelArray;
        import fimo.model.FModelCollector;
        import fimo.sys.visitor.IFVisitable;
        import fimo.sys.visitor.IFVisitor;

        import com.carlcalderon.arthropod.Debug;

        import flash.display.Bitmap;
        import flash.display.Loader;
        import flash.events.Event;
        import flash.net.URLRequest;

        /**
         * @author Goabonga
         */
        public class PictureDisplayLoadVisitor implements IFVisitor {


                /*
                 * the current visitor loader
                 */
                private var _loader : Loader;

                /**
                 * the user picture vo
                 */
                private var _vo : PictureVO;

                /**
                 * the user picture display
                 */
                private var _view : PictureDisplay;

                public function PictureDisplayLoadVisitor() {
                        Debug.visitor(this + ' init');
                }


                public function visit(visitable : IFVisitable) : void {
                        _view = visitable as PictureDisplay;

                        if (_view) {
                                _vo = 
(FModelCollector.getByUid(ModelList.PICTURES_MODEL) as
FModelArray).vo as PictureVO;

                                Debug.visitor(this + ' visit ' + visitable + ' 
: ' + _vo.uid);


                                if(_vo.img == null) {
                                        _loader = new Loader();
                                        
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,
picture_loaded);
                                        _loader.load(new URLRequest(_vo.link));
                                } else {
                                        var bmp : Bitmap = new Bitmap(_vo.img);
                                        _view.addChild(bmp);
                                        _view.on_resize();
                                }
                        }
                }

                private function picture_loaded(event : Event) : void {

                        var data : Bitmap = _loader.content as Bitmap;
                        
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,
picture_loaded);
                        _vo.img = data.bitmapData.clone();
                        _loader.unloadAndStop();
                        data.bitmapData.dispose();
                        data = null;
                        _loader = null;

                        var bmp : Bitmap = new Bitmap(_vo.img);
                        _view.addChild(bmp);
                        _view.on_resize();
                        /*if(int(_vo.uid) < 100) {
                                
(ModelCollector.getByUid(ModelList.PICTURES_MODEL) as
ModelArray).next();
                        }*/
                }
        }
}




mon VO :

package app.vo.model
{
        import fimo.vo.FVo;

        import flash.display.BitmapData;

        /**
         * @author Goabonga
         */
        public class PictureVO extends FVo {

                public var title : String ;
                public var link : String ;
                public var img : BitmapData;


                public function PictureVO(obj : Object = null) {
                        super(obj);
                }

                override public function destroy() : void {

                        title = null;
                        link = null;

                        if(img) img.dispose();

                        img = null;
                        super.destroy();
                }
        }
}




en gros je n'ai aucune référence à l'objet le seule bug que je
constate c'est quand je dé-commente la ligne (*) , omis le bmp qui est
affiché sur ma scène, mais que je remove avant de lancer la méthode
clear de mon modèle.

(*) la ligne qui bug !
/*
if(int(_vo.uid) < 100) {
 (ModelCollector.getByUid(ModelList.PICTURES_MODEL) as
ModelArray).next();
}
*/


-- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes FCNG.
Pour envoyer un message à ce groupe, adressez un e-mail à [email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
[email protected].
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/fcng?hl=fr

Répondre à