我想用haxe nme來顯示具有alpha通道的圖像與預加載器的flash目標背景。這對於預加載器來說似乎很常見。如何使haxe nme preloader呈現透明度的位圖
我發現了幾種可能的方式來做到這一點,但沒有運氣。 由於我製作了一個繼承默認NMEPreloader的自定義Preloader類,我所有的路徑&錯誤都在這個類中。
方法#1 - nme.Assets方法 - 運行時錯誤
我在預加載的建築工試圖調用Assets.loadBitmapData("assets/img/miniMoon.png")
。錯誤發生在運行時:
[Fault] exception, information=ArgumentError: Error #2015: Invalid BitmapData.
與調用堆棧:
flash.display::BitmapData/ctor
flash.display::BitmapData
NME_assets_img_minimoon_png1 at H:\MWHx\export\flash\haxe\ApplicationMain.hx:2053
Type$/createInstance at C:\Motion-Tween\haxe\std\flash\_std\Type.hx:136
nme.installer::Assets$/getBitmapData at H:\MWHx\export\flash\haxe\nme\installer\Assets.hx:721
Preloader at H:\MWHx\source\Preloader.hx:55
...
不知nme.Assets類是否已準備好預壓過程中使用。
方法2嵌入在Flash路 - 渲染不透明度
穿透式這不是NME的青睞使用嵌入,我已經試過這樣:
@:bitmap("assets/img/miniMoon.png") class BDmoon extends BitmapData {}
...
var moon:Bitmap;
...
moon = new Bitmap(new BDmoon(32,32,true,0x00000000));
它只是運行,但顯示的圖像沒有透明度,所有帶有alpha 0的像素都會在背景中呈現白色。
作爲進一步的測試,我使用moon.alpha = 0.5;
然後我可以看穿圖像。所以也許這是在嵌入nme期間丟失alpha通道值的問題。
帶小動畫或小遊戲的預加載器可以很有趣。我希望有一個解決方案。謝謝!
引用: NME forum topic : Embed Transparent Png Image
第四PARAM 00000000不會爲一個嵌入的位圖實際上很重要。因爲每個像素甚至是圖像文件上的透明0x0都會替換填充顏色。無論哪種方式工作!無論如何。 – 2013-05-06 03:57:09