2011-03-31 14 views
1

this.container.addElement(GraphicElementとしてのmyCustomImageInstance)は、テストイメージを表示する必要があります。継承なしでBitmapImageの機能を実装する最善の方法は何ですか?

package com.www 
{ 
    import spark.primitives.BitmapImage; 
    import spark.primitives.supportClasses.GraphicElement; 

    public class BaseTest extends GraphicElement 
    {  
     public function BaseTest() 
     { 
      super(); 
     } 

     /* stuff */ 
    } 

    public class MyCustomImage extends BaseTest 
    { 
     private var _img:BitmapImage = null; 

     public function MyCustomImage() 
     { 
      super(); 
     } 

     public function get img():BitmapImage { 
      if (!_img) { 
       _img = new BitmapImage(); 
       _img.source = /* BitmapData of a test image */; 
      } 
      return _img; 
     } 

     /* It obviously does not work, any ideas? 
     override public function createDisplayObject():DisplayObject { 
      return img.displayObject; 
     } 

     override public function get displayObject():DisplayObject { 
      return img.displayObject; 
     } 
     */ 

    } 

} 

ありがとうございました

+0

あなたの質問は非常に明確ではありません - もう少ししてください特定のvis。あなたが達成しようとしていること。 –

+0

MyCustomImageのインスタンスをDisplayObjectContainerに追加する(addElement)必要があります。レンダリングはBitmapImageの表示オブジェクトです。 –

+0

私自身の質問に答える。 BaseTestはGroupなどを拡張し、BitmapImage要素を追加する必要があります。 –

答えて

1

mx:Imageとは異なり、スパークBitmapImageクラスがロードされたビットマップデータのためのメンバ関数が含まれていませんが。したがって、URLをプッシュしようとしているsourceプロパティは、実際のビットマップデータ(SWFLoaderまたはLoader、または埋め込みイメージファイルから返されたもの)を取得することのみを目的としています。

技術的にURLを埋め込みディレクティブ(例:@Embed("http://...image.jpg"))に配置することはできますが、MXMLではなくActionScriptを使用しているため、イメージを動的に読み込む予定です。

この場合、mx.controls.Imageを使用するか、別のmx.controls.SWFLoaderまたはflash.display.Loaderを使用して、必要な画像を読み込む必要があります。ロードプロセスは非同期であることに注意してください。

あなたはMXのように機能するために、一緒にs:BitmapImageで、flash.display.Loaderを使用する方法を示しており、参考にチュートリアルのようなものを見つけるかもしれない:画像: http://polygeek.com/2452_flex_extending-spark-bitmapimage

+0

問題を通知していただきありがとうございますが、実際には私の問題ではありません。私は自分のメッセージを編集する。 –

関連する問題