Используя тег Embed, мы можем встраивать в файл swf не только файлы swf, jpg и т. Д., Но и неподдерживаемые форматы файлов, например:
Embed[(source="mzip.zip", mimeType="application/octet-stream")]</p>
<p>public static MyZip:Class;
Когда я создаю такой класс, какой тип объекта я получу? Можно ли получить ByteArray из этого класса?
Когда я делаю это:
package {
import flash.utils.ByteArray;</p>
<pre><code>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 {<br>
private var ship:Bitmap;
private var lib:FZipLibrary; </p>
<pre><code> 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()