Апрель 11, 2008

Баг в Flash IDE с Loader (Progress, close())

Опубликовано в: Эксперименты — Тэги: — Nicolas Prof @ 09:07

Столкнулся с очень интересным багом. Если во время загрузки контента, не дав загрузится до конца, начать грузить другой контент тем же лоадером, получим в итоге как в анекдоте 165% или даже больше процентов загрузки. Так же при загрузке контента, попытки закрыть поток методом close тоже будут не удачны.
Можете попробовать сами.

Actionscript:
  1. private var _loader : Loader;
  2.         private var _info : TextField;
  3.  
  4.        
  5.        
  6.         public function LoadMore() {
  7.             //INIT
  8.             var offset:uint = 20;
  9.             var btn1:Sprite = button("test1");
  10.             var btn2:Sprite = button("test2");
  11.             btn1.x = btn2.x = offset;
  12.             btn1.y = offset;
  13.             btn2.y = 3 * offset;
  14.             _loader = new Loader();
  15.             _loader.x = 150;
  16.             _loader.y = offset;
  17.             _info = new TextField();
  18.             _info.selectable = true;
  19.             _info.autoSize = TextFieldAutoSize.LEFT;
  20.             _info.x = offset;
  21.             _info.y = 350;
  22.            
  23.             stage.scaleMode = StageScaleMode.NO_SCALE;
  24.             stage.align = StageAlign.TOP_LEFT;
  25.            
  26.             //DISPLAY LIST
  27.             addChild(_loader);
  28.             addChild(btn1);
  29.             addChild(btn2);
  30.             addChild(_info);
  31.            
  32.             //LISTENERS
  33.             btn1.addEventListener(MouseEvent.CLICK, onClick);
  34.             btn2.addEventListener(MouseEvent.CLICK, onClick);
  35.            
  36.             //ACTIONS
  37.         }
  38.        
  39.        
  40.  
  41.         private function button(str : String) : Sprite {
  42.             var btn : Sprite = new Sprite();
  43.             btn.graphics.lineStyle(0, 0x333333,0.4,true);
  44.             btn.graphics.beginFill(0xF6F6F7);
  45.             btn.graphics.drawRoundRect(0, 0, 100, 20, 10, 10);
  46.             btn.graphics.endFill();
  47.             btn.name = str;
  48.             var tf : TextField = new TextField();
  49.             tf.selectable = false;
  50.             tf.autoSize = TextFieldAutoSize.LEFT;
  51.             tf.text = str;
  52.             tf.x = (btn.width - tf.width) * 0.5;
  53.             tf.y =( btn.height - tf.height) * 0.5;
  54.            
  55.             btn.mouseChildren = false;
  56.             btn.buttonMode = true;
  57.             btn.addChild(tf);
  58.            
  59.             return btn;
  60.         }
  61.        
  62.         private function loadIMG(path : String) : void {
  63.             var url : URLRequest = new URLRequest(path + ".jpg");
  64.             /*try{
  65.                 _loader.unload();
  66.                 trace("UNLOAD");
  67.             }catch (e : TypeError) {
  68.                 //nothing
  69.             }
  70.             try{
  71.                 _loader.close();
  72.                 trace("CLOSE STREAM");
  73.             }catch (e : TypeError) {
  74.                 //nothing
  75.             }catch (e : Error){
  76.                 //nothing
  77.             }*/
  78.             _loader.load(url);
  79.             _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
  80.             _loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoading);
  81.         }
  82.        
  83.         /*
  84.          * EVENTS
  85.          */
  86.         private function imageLoading(e : ProgressEvent) : void {
  87.             trace("LOADED:",e.bytesLoaded," TOTAL:", e.bytesTotal);
  88.             _info.text = "LOADED:"+e.bytesLoaded+" TOTAL:"+ e.bytesTotal;
  89.         }
  90.  
  91.         private function imageLoaded(e : Event) : void {
  92.            
  93.         }
  94.         private function onClick(e : MouseEvent) : void {
  95.             loadIMG(e.currentTarget.name);
  96.         }

Как это работает в WEB :
(Either JavaScript is not active or you are using an old version of Adobe Flash Player. Please install the newest Flash Player.)

Комментариев нет »

Комментариев нет.

RSS-подписка на комментарии этой записи. URL обратной ссылки

Оставить комментарий

 

Меню:
Архив:
Управление:
Flash&Flex знакомые: