0

我使用了一个函数,我创建了它应该获取位图数据并将其从对象的 url 发送回来。我跟踪调用函数的次数:d变量,以及它返回的次数,它当然应该相等,但事实并非如此。

这是我使用的功能。它检查一个对象中是否有多个附件,然后加载位图,如果附件的数量等于它应该拥有的数量,它会将带有位图的数组发送回函数:

private function get_bitmap(url:String,urlObject:Object, on_complete:Function):void{
                d++;

                //trace("get_bitmap");
                if(url == geenImage){
                    trace("geenImage");
                    loaderGeenImage.load(new URLRequest(geenImage));
                }
                else{
                    if(urlObject.length == 1){
                        var url11:String = url +urlObject[0].id;
                        loader1.load(new URLRequest(url11));
                        loader1int++;

                    }
                 if(urlObject.length == 2){
                    loader2int++;
                        var url21:String = url +urlObject[0].id;
                        loader2.load(new URLRequest(url21));
                        var url22:String = url +urlObject[1].id;
                        loader2.load(new URLRequest(url22));
                    }
                 if(urlObject.length == 3){
                        var url31:String = url +urlObject[0].id;
                        loader3.load(new URLRequest(url31));
                        var url32:String = url +urlObject[1].id;
                        loader3.load(new URLRequest(url32));
                        var url33:String = url +urlObject[2].id;
                        loader3.load(new URLRequest(url33));
                    }
                 if(urlObject.length == 4){
                        var url41:String = url +urlObject[0].id;
                        loader4.load(new URLRequest(url41));
                        var url42:String = url +urlObject[1].id;
                        loader4.load(new URLRequest(url42));
                        var url43:String = url +urlObject[2].id;
                        loader4.load(new URLRequest(url43));
                        var url44:String = url +urlObject[3].id;
                        loader4.load(new URLRequest(url44));
                    }
                 if(urlObject.length == 5){
                        var url51:String = url +urlObject[0].id;
                        loader5.load(new URLRequest(url51));
                        var url52:String = url +urlObject[1].id;
                        loader5.load(new URLRequest(url52));
                        var url53:String = url +urlObject[2].id;
                        loader5.load(new URLRequest(url53));
                        var url54:String = url +urlObject[3].id;
                        loader5.load(new URLRequest(url54));
                        var url55:String = url +urlObject[4].id;
                        loader5.load(new URLRequest(url55));
                    }
                 if(urlObject.length == 6){
                        var url61:String = url +urlObject[0].id;
                        loader6.load(new URLRequest(url61));
                        var url62:String = url +urlObject[1].id;
                        loader6.load(new URLRequest(url62));
                        var url63:String = url +urlObject[2].id;
                        loader6.load(new URLRequest(url63));
                        var url64:String = url +urlObject[3].id;
                        loader6.load(new URLRequest(url64));
                        var url65:String = url +urlObject[4].id;
                        loader6.load(new URLRequest(url65));
                        var url66:String = url +urlObject[5].id;
                        loader6.load(new URLRequest(url66));
                    }
                else{
                        trace("anders" + urlObject.length);
                    }

                }



                loaderGeenImage.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void{
                        var bitmap:Bitmap = (e.target).content;
                        var data:BitmapData = bitmap.bitmapData;
                        geenImageArray.push(data);
                        if(geenImageArray.length == 1){
                        on_complete(geenImageArray);
                        geenImageArray= [];
                        }
                    });
                loader1.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void{
                    //var loader:URLLoader = URLLoader(e.target);
                    var bitmap:Bitmap = (e.target).content;
                    var data:BitmapData = bitmap.bitmapData;
                    //trace("bitmapcomplete");
                    imageArray1.push(data);
                        if(imageArray1.length == 1){
                            trace("imageArray1 gelijk");
                            on_complete(imageArray1);
                            imageArray1= [];
                        }

                });
                loader2.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void{
                    //var loader:URLLoader = URLLoader(e.target);
                    var bitmap:Bitmap = (e.target).content;
                    var data:BitmapData = bitmap.bitmapData;
                    //trace("bitmapcomplete");
                    imageArray2.push(data);
                    //trace("url object  lengte is " + urlObject.length);

                    if(imageArray2.length == 2){
                        trace("imageArray2 gelijk");
                        on_complete(imageArray2);
                        imageArray2= [];

                    }

                });
                loader3.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void{

                    //var loader:URLLoader = URLLoader(e.target);
                    var bitmap:Bitmap = (e.target).content;
                    var data:BitmapData = bitmap.bitmapData;
                    //trace("bitmapcomplete");
                    imageArray3.push(data);
                    //trace("url object  lengte is " + urlObject.length);

                    if(imageArray3.length == 3){
                        trace("imageArray3 gelijk");
                        on_complete(imageArray3);
                        imageArray3= [];

                    }

                });
                loader4.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void{

                    //var loader:URLLoader = URLLoader(e.target);
                    var bitmap:Bitmap = (e.target).content;
                    var data:BitmapData = bitmap.bitmapData;
                    //trace("bitmapcomplete");
                    imageArray4.push(data);
                    //trace("url object  lengte is " + urlObject.length);

                    if(imageArray4.length == 4){
                        trace("imageArray4 gelijk");
                        on_complete(imageArray4);
                        imageArray4= [];

                    }

                });
                loader5.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void{

                    //var loader:URLLoader = URLLoader(e.target);
                    var bitmap:Bitmap = (e.target).content;
                    var data:BitmapData = bitmap.bitmapData;
                    //trace("bitmapcomplete");
                    imageArray5.push(data);
                    //trace("url object  lengte is " + urlObject.length);

                    if(imageArray5.length == 5){
                        trace("imageArray5 gelijk");
                        on_complete(imageArray5);
                        imageArray5= [];

                    }

                });
                loader6.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void{

                    //var loader:URLLoader = URLLoader(e.target);
                    var bitmap:Bitmap = (e.target).content;
                    var data:BitmapData = bitmap.bitmapData;
                    //trace("bitmapcomplete");
                    imageArray6.push(data);
                    //trace("url object  lengte is " + urlObject.length);

                    if(imageArray6.length == 6){
                        trace("imageArray6 gelijk");
                        on_complete(imageArray6);
                        imageArray6= [];

                    }

                });

            }

这是调用它的函数:

get_bitmap(bitmapString,imageObject, function(imageArray:Array):void {
                                 intje++;
                                 trace("getBitmap teruggestuurd "+intje + "waarvan 1 image " + loader1int+ "waarvan 2 images " +loader2int);
                                 trace("getbitmap aangeroepen is "+d);

这是我的日志:

lengte is 20 anders1 anders1 geenImage anders1 anders1 getBitmap teruggestuurd 1waarvan 1 image 4waarvan 2 images 0 getbitmap aangeroepen is 5 0 getBitmap teruggestuurd 2waarvan 1 image 4waarvan 2 images 0 getbitmap aangeroepen is 5 1 getBitmap teruggestuurd 3waarvan 1 image 4waarvan 2 images 0 getbitmap aangeroepen is 5 2 getBitmap teruggestuurd 4waarvan 1 image 4waarvan 2 images 0 getbitmap aangeroepen is 5 3 getBitmap teruggestuurd 5waarvan 1 image 4waarvan 2 images 0 getbitmap aangeroepen is 5 4 anders1 anders2 anders2 anders1 anders1 anders1 anders1 anders1 anders1 anders1 anders2 anders1 anders1 anders1 anders1 imageArray2 gelijk getBitmap teruggestuurd 6waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 5 imageArray2 gelijk getBitmap teruggestuurd 7waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 6 imageArray2 gelijk getBitmap teruggestuurd 8waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 7 imageArray2 gelijk getBitmap teruggestuurd 9waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 8 imageArray2 gelijk getBitmap teruggestuurd 10waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 9 imageArray2 gelijk getBitmap teruggestuurd 11waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 10 imageArray2 gelijk getBitmap teruggestuurd 12waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 11 imageArray2 gelijk getBitmap teruggestuurd 13waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 12 imageArray2 gelijk getBitmap teruggestuurd 14waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 13 imageArray2 gelijk getBitmap teruggestuurd 15waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 14 imageArray1 gelijk getBitmap teruggestuurd 16waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 15 imageArray1 gelijk getBitmap teruggestuurd 17waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 16 imageArray1 gelijk getBitmap teruggestuurd 18waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 17 imageArray1 gelijk getBitmap teruggestuurd 19waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 18 imageArray1 gelijk getBitmap teruggestuurd 20waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 19 gelijk dude imageArray1 gelijk getBitmap teruggestuurd 21waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 0 imageArray1 gelijk getBitmap teruggestuurd 22waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 1 imageArray1 gelijk getBitmap teruggestuurd 23waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 2 imageArray1 gelijk getBitmap teruggestuurd 24waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 3 imageArray1 gelijk getBitmap teruggestuurd 25waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 4 imageArray1 gelijk getBitmap teruggestuurd 26waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 5 imageArray1 gelijk getBitmap teruggestuurd 27waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 6 imageArray1 gelijk getBitmap teruggestuurd 28waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 7 imageArray1 gelijk getBitmap teruggestuurd 29waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 8 imageArray1 gelijk getBitmap teruggestuurd 30waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 9 imageArray1 gelijk getBitmap teruggestuurd 31waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 10 imageArray1 gelijk getBitmap teruggestuurd 32waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 11 imageArray1 gelijk getBitmap teruggestuurd 33waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 12 imageArray1 gelijk getBitmap teruggestuurd 34waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 13 imageArray1 gelijk getBitmap teruggestuurd 35waarvan 1 image 16waarvan 2 images 3 getbitmap aangeroepen is 20 14
4

1 回答 1

0

加载器的加载方法是异步的。这意味着它需要一些时间来执行,并且代码执行不会“等待”它。(这就是我们处理事件的原因......)

所以当你这样做时:

                    var url21:String = url +urlObject[0].id;
                    loader2.load(new URLRequest(url21));
                    var url22:String = url +urlObject[1].id;
                    loader2.load(new URLRequest(url22));

您在 loader2 (url21) 上开始加载,然后立即开始新的加载 (url22),停止第一次加载,因此只得到一个“完成”事件(对于 url22)。

Ik hoop dat het help ;)

于 2013-08-20T22:15:19.647 回答