2012-03-28 37 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");