我試圖創建一個遊戲,其中點擊一個對象後,對象發光。當我嵌入圖像,並使之通過一個位圖,它工作正常,像這樣:如何使用類而不是嵌入式圖像來處理此問題?
package
{
import org.flixel.*;
public class HelloWorld extends FlxState
{
[Embed(source = "pics/Cancer.png")] private var cancerIMG:Class;
private var cancer:FlxSprite;
private var title_text:FlxText;
public function HelloWorld()
{
}
override public function create():void
{
/**
* Glow method test
*/
//Start Test
var bigbitmap:BitmapData = new BitmapData(320, 288, true, 0x00000000);
bigbitmap.copyPixels(Bitmap(new cancerIMG).bitmapData, new Rectangle(0, 0, 160, 288), new Point(16, 16), null, null, true);
cancer = new FlxSprite;
cancer.pixels = bigbitmap;
add(cancer);
//End Test
}
override public function update():void
{
super.update();
}
}
}
然而,每當我試圖使用同樣的方法來傳遞類精靈,像這樣:
_bx = new box(120, 120);
var bigbitmap:BitmapData = new BitmapData(320, 288, true, 0x00000000);
bigbitmap.copyPixels(Bitmap(_bx.pixels).bitmapData, new Rectangle(0, 0, 160, 288), new Point(16, 16), null, null, true);
_bx.pixels = bigbitmap;
add(_bx);
我所說的盒子是這樣的:
public var _bx:box;
其中,本身就是一個FlxExtendedSprite(恢復回一個普通FlxSprite儘管對於測試)。當我嘗試時,出現以下錯誤:
錯誤#1034:類型強制失敗:無法將flash.display :: BitmapData @ 3960701轉換爲flash.display.Bitmap。
有沒有一種方法可以解決這個問題,並讓它與類似的類一起工作?
在此先感謝!
這聽起來像你正在嘗試使用在需要的位圖的BitmapData。但是,根據你的代碼;我不確定哪一行是拋出錯誤,我不熟悉Flixel類。 – JeffryHouser
這給我一個可能的解決方案。有沒有辦法可以將其中一個轉換爲另一個? – xhunterko
是的,您可以使用bitMapData屬性從BitMap獲取BitMapData。 http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/display/Bitmap.html#bitmapData。您可以通過將數據指定爲構造函數參數來從BitMapData創建一個BitMap http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Bitmap.html#Bitmap() – JeffryHouser