Вставить неизвестные форматы файлов - PullRequest
1 голос
/ 12 октября 2010

Используя тег 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()

1 Ответ

5 голосов
/ 12 октября 2010

Да, просто создайте экземпляр MyZip и приведите его в качестве ByteArray.

Embed[(source="mzip.zip", mimeType="application/octet-stream")]
public static var MyZip:Class;

var zip:ByteArray = new MyZip() as ByteArray;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...