使用嵌入標籤,我們可以在SWF文件不僅SWF的或JPG文件等,同時也支持的文件格式,如嵌入:嵌入未知文件格式
Embed[(source="mzip.zip", mimeType="application/octet-stream")]
public static MyZip:Class;
當我實例這樣一類,是什麼我得到的物體類型?是否有可能從這個類中獲得一個ByteArray?
當我這樣做: package { import flash.utils.ByteArray;
public final class Resource {
[Embed(source="p2.zip", mimeType="application/octet-stream")]
public static const MyZip:Class;
public static function getByteArrayFromZip():ByteArray {
var zip:ByteArray = new MyZip as ByteArray;
return zip;
}
}
}
和
public class Main extends Sprite {
private var ship:Bitmap; private var lib:FZipLibrary;
public function Main() {
lib = new FZipLibrary();
lib.formatAsBitmapData(".jpg");
lib.addEventListener(Event.COMPLETE,onCompleteHandler);
var fzip:FZip = new FZip();
fzip.loadBytes(Resource.getByteArrayFromZip());
lib.addZip(fzip);
}
private function onCompleteHandler(evt:Event) {
var image:BitmapData = lib.getBitmapData("assets/graphics/scratchers/myimg.jpg");
trace("Size: " + image.width + "x" + image.height);
var sa0img0:Bitmap = new Bitmap(image);
addChild(sa0img0);
}
}
}
的我得到以下錯誤: TypeError: Error #1009: Cannot access a property or method of a null object reference. at Main/onCompleteHandler() at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at deng.fzip::FZipLibrary/processNext() at deng.fzip::FZipLibrary/loaderCompleteHandler()
如果您不使用「as」cast(X作爲ByteArray),而是使用正常的顯式轉換,您將立即得到錯誤。因此,不應將「X as ByteArray」寫成「ByteArray(X)」。如果轉換失敗,它不會將結果轉換爲空值。 – 2010-10-12 14:10:42
此外,你的錯誤發生在onCompleteHandler,那麼什麼是null?也許用調試器來完成它。 – 2010-10-12 14:12:22