天天看點

Flex4的可視化顯示對象

 flex3中用addChild(child:DisplayObject) 增加顯示對象,flex4中用addElement(element:IVisualElement)。絕大多數的flex3顯示控件都是從DispalyObject繼承的,是以在flex3中增加顯示對象非常容易。一旦到了flex4,要顯示sprite shape Bitmap都會報錯,因為都沒有實作IVisualElement接口。習慣了flex3,再用flex4的時候還真有點不适應了。

   從adobe幫助文檔可以看到直接實作IVisualElement接口的隻有如下幾個,

   直接實作的類都比較輕量級的,是以把你要顯示的sprite等加入到這些類中,再把這些類加入可視對象即可

var spr:Sprite = new Sprite();

var sve:SpriteVisualElement = new SpriteVisualElement();

spr.graphics.beginFill(0xFF0000, 1);

spr.graphics.drawRect(10, 10, 10, 10);

spr.graphics.endFill();

sve.addChild(spr); 

this.addElement(sve);

    顯示位圖的做法是,使用spark.primitives下面的BitmapImage

var data:BitmapData = new BitmapData( 400, 400, false);

data.fillRect(data.rect, 0x0000FF);

    var bitmap:BitmapImage = new BitmapImage();

    bitmap.source = data;

    bitmap.x=50;

    bitmap.y=50;

    this.addElement(bitmap);

或者采用SpriteVisualElement類似的做法,把Bitmap加入到UIComponet中

var ui:UIComponent = new UIComponent();

var bitmap:Bitmap = new Bitmap(data);

ui.addChild(bitmap);

this.addElement(ui);

繼續閱讀