2012-03-28 9 views
0

einen Blick auf die folgenden Klasse nehmens: Gruppe und Lade Bild

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); 
    } 
} 

Wenn es in mxml wie folgt verwendet

<ctw:CanvasHolder id="holder"/> 

Bild geladen wird. Aber wenn ich versuche, es in den Farbwechsler

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

Bild wird nicht angezeigt. Kann mir jemand sagen, wo das Problem liegt?

+1

anstelle des Laders des Hinzufügens, warum Sie versuchen, kippe die geladene Bitmap über die Sprite-visuelles Element Grafiken zeichnen, und auch sicherstellen, dass das Bild richtig geladen . – Triode

+0

Vielen Dank für Ihre Antwort! Und was ist der Gewinn beim Zeichnen von Bitmap über Grafiken? Das Bild wird korrekt geladen (das sollte nicht von s abhängen: Gruppenelement). – Eugeny89

+0

der Code, den ich unten gebe funktioniert gut für mich, danke hoffe, dass es helfen wird – Triode

Antwort

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); 
     } 

    } 
} 

und in Ihrem Haupt mxml hinzufügen, um dieses

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