2012-03-28 99 views
0

在下面的類S:組和裝載圖像

public class CanvasHolder extends SpriteVisualElement { 
    .... 

    public function draw(filename: String):void { 
     var loader:Loader = new Loader(); 
     loader.addEventListener(Event.COMPLETE, completeHandler); 
     var request:URLRequest = new URLRequest(.....); 
     loader.load(request); 
     addChild(loader); 
    } 
} 

看一看當在MXML使用如下

<ctw:CanvasHolder id="holder"/> 

圖像被加載。但是當我嘗試將其插入滾動條時

<s:Group id="canvasGroup" width="400" height="100%" clipAndEnableScrolling="true"> 
    <ctw:CanvasHolder id="holder"/> 
</s:Group> 

圖像未顯示。有人能告訴我問題在哪裏嗎?

+1

,而不是添加裝載機爲什麼你不能嘗試繪製加載的位圖在精靈視覺元素的圖形,並確保你的形象是否正確裝入。 – Triode 2012-03-28 11:21:02

+0

謝謝你的迴應!以及在圖形上繪製位圖的好處是什麼?圖像加載正確(不應該依賴s:Group元素)。 – Eugeny89 2012-03-28 11:29:37

+0

下面我給出的代碼對我來說工作得很好,謝謝,希望對我有所幫助 – Triode 2012-03-28 11:30:42

回答

1
package 
{ 
    import flash.display.Bitmap; 
    import flash.display.Loader; 
    import flash.events.Event; 
    import flash.events.IOErrorEvent; 
    import flash.net.URLRequest; 

    import mx.binding.utils.BindingUtils; 

    import spark.core.SpriteVisualElement; 

    public class CanvasLoader extends SpriteVisualElement 
    { 
     public function CanvasLoader() 
     { 
      super(); 
     } 


     public function draw(url: String):void { 
      var loader:Loader = new Loader(); 
      loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); 
      loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError); 
      var request:URLRequest = new URLRequest(url); 
      loader.load(request); 
     } 


     private function completeHandler(event:Event):void 
     { 
      var bitmap:Bitmap = event.target.content as Bitmap; 
      addChild(bitmap); 
     } 

     private function onError(event:IOErrorEvent):void 
     { 
      trace(event.text); 
     } 

    } 
} 

和主MXML裏面添加這個

holder.draw("http://yourdomain.com/image.jpg");