我正在從閃存中的圖像構建一個多維數據集。加載器加載圖像的精靈圖:這是爲什麼拋出錯誤?
+----++----++----++----++----++----+
|frnt||rght||back||left||top ||bot |
| || || || || || |
+----++----++----++----++----++----+
我得到的錯誤是:
錯誤#2005:參數0類型不正確的。應該是類型BitmapData。
在線路front.draw(src, null, null, null, clip);
(由註釋代碼和不接收到錯誤確認)。但我不知道爲什麼。我定義src
爲BitmapData
,和一個src
產生trace
[object BitmapData]
。
private function loaderCompleteListener(e:Event):void
{
log('Complete');
var front:BitmapData,
right:BitmapData,
back:BitmapData,
left:BitmapData,
top:BitmapData,
bottom:BitmapData,
srcData:Bitmap,
src:BitmapData,
clip:Rectangle;
try
{
srcData = this._imageLoader.content as Bitmap;
src = srcData.bitmapData;
front = new BitmapData(src.height, src.height, false, 0);
right = new BitmapData(src.height, src.height, false, 0);
back = new BitmapData(src.height, src.height, false, 0);
left = new BitmapData(src.height, src.height, false, 0);
top = new BitmapData(src.height, src.height, false, 0);
bottom = new BitmapData(src.height, src.height, false, 0);
clip = new Rectangle(0, 0, src.height, src.height);
//This is the line that causes the error
front.draw(src, null, null, null, clip); //<----
clip.x += src.height;
right.draw(src, null, null, null, clip);
clip.x += src.height;
back.draw(src, null, null, null, clip);
clip.x += src.height;
left.draw(src, null, null, null, clip);
clip.x += src.height;
top.draw(src, null, null, null, clip);
clip.x += src.height;
bottom.draw(src, null, null, null, clip);
}
catch (e:Error)
{
log(e.message);
}
}
我缺少什麼?
修改即可添加:
一個考慮因素可能是圖像大小。我正在加載1866年的圖片× 11196.我將在明天測試以查看較小的圖片是否有效。這可能就是Flash無法處理超過一定大小的圖像。
你有一個體面的調試器?如果是這樣,你可以在srcData = this._imageLoader.content中設置一個斷點作爲Bitmap;並檢查src是否實際上被分配了BitmapData對象? –
@EyeSeeEm,'log'是一個定製的JavaScript記錄器,默認爲flash編輯器中的trace。我可以正確讀取'src.height'和'src.width',所以我假定它被正確分配。 – zzzzBov