最近做遊戲,發現flash裡位元影像是無法使用scale9Grid這個屬性,,,沒辦法,只好自己寫了一個,,,原理很簡單,,用程式把位元影像切成九塊,,裝裡一個Sprite裡,然後重寫Sprite的width和height這兩個方法,根據改變大小來重新設定位元影像的各個位置…這樣就實現了位元影像的不變形縮放….
ps:近期我會把以前做的一些小東西的源碼放出來,供大家學習使用…
嚴重聲明,,,
發現好多人都不知道這個問題,,用FLASH編譯,位元影像使用scale9Grid也沒用,
二、哪些時候會無效
1、只對向量圖起作用,對圖片無效。解決辦法參考:
http://bbs.blueidea.com/viewthread.php?tid=2915069
2、對Shape對象使用scale9Grid,有效。但是如果用Shape.graphics.beginBitmapFill (new BitmapData());//僅用了一個BitmapData對象填充Shape對象後,無效!
3、對Sprite對象使用scale9Grid:
(1)僅對Sprite對象下的“圖形元件”和“直接繪製的形狀”有效。
(2)對Sprite對象下的Sprite對象,無效!
(3)對Sprite對象下的“圖形元件”,如果該“圖形元件”內僅包含另個Sprite對象,依然無效。
4、參考部落格:scale9Grid – When it works and when it does not
http://www.ovidiudiac.ro/blog/2009/05/scale9grid-work-and-fail/ 三、Flex中使用Embed標籤
Embed(source="track.png",scaleGridTop="20",scaleGridLeft="7",scaleGridRight="9",scaleGridBottom="80");
四、建立一個具有九宮格功能的Bitmap
http://flex2.group.iteye.com/group/blog/513064
五、推薦http://bbs.9ria.com/thread-47414-1-1.html(第三個頁面打不開,鬱悶) [Embed(source="ee.gif",scaleGridTop="10",scaleGridBottom="90",scaleGridLeft="10",scaleGridRight="90")]
private var abe:Class;
本文轉載自:http://blog.sina.com.cn/s/blog_456a32b901011nxg.html