Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как забить ByteArray в исходник? (http://www.flasher.ru/forum/showthread.php?t=108691)

Yastreb 27.02.2008 00:12

Как забить ByteArray в исходник?
 
Для работы программы требуется несколько ByteArray размером несколько тысяч байт.
Как забить их в исходник, подобно обычным массивам?
Например
var a:Array = [1, 2, 3];
Обычные массивы мне не подходят, так как нужен метод readObject.

etc 27.02.2008 00:44

А чем вам ByteArray не массив?

Yastreb 27.02.2008 01:10

Компилятор не разрешает писать:
var a:ByteArray = [1, 2, 3];

etc 27.02.2008 01:31

Ну само собой, что не разрешает.
Вам только это и нужно было?

Yastreb 27.02.2008 02:00

Мне нужен вариант, как забить в ByteArray массив данных.
Либо, возможно ли встроить в ролик двоичный файл, из которого можно было бы этот массив считать.

alekslitvinenk 27.02.2008 02:13

А зачем вам инициализировать массив двоичных данных таким образом ? Вместо этого используйте методы: writeByte(), writeBytes, writeInt()...

Yastreb 27.02.2008 02:23

речь идет об относительно большом объеме данных, от 1000 до 10000 байт на каждый массив. Таких массивов должно быть около 50.
Вызов методов не самое быстрое решение.
Хотелось бы, что бы при загрузке ролика массивы уже висели в памяти, как это сделано например в C++.

alekslitvinenk 27.02.2008 03:33

Ну не знаю...
Тагда Вам лучше через какой-нибудб hex-редактор сгенерировать нужный двоичный файл, сохранить его, а затем просто прчитать в ByteArray с помощью метода writeObject();

Yastreb 27.02.2008 09:40

Хорошо, а как присоединить двоичный файл к ролику. Чтобы он был не отделим от исполняемого файла?

BlooDHounD 27.02.2008 12:19

о, да :) writeObject вам поможет :) как попробуете, скиньте сюда результат :) мы посмеемся.

a[0] = 1;
a[1] = 2;
a[2] = 3;

или использовать флекс и метаданные Embed

badun 27.02.2008 13:45

А чем не устраивает вариант забивать данные в Array, а в начале программы формировать соответствующие ByteArray?

greyshaman 27.02.2008 15:07

- записать данные в строку через Base64 и декодировать в массив.

- сформировать BMP содежащий все необходимые данные, заэмбедить(убрав сжатие), по необходимости извлеч и раскидать по массивам.

Yastreb 27.02.2008 15:25

Цитата:

А чем не устраивает вариант забивать данные в Array, а в начале программы формировать соответствующие ByteArray?
Так и сделал. Работает вроде быстро.

firelord 01.03.2008 16:05

Что вы человеку на мозги давите? делаете, например, hex строку типа:
Код:

var str="043EF63A..."
и метод, который из строки пишет в ByteArray... hope it'll help

etc 01.03.2008 16:09

ByteArray можно зашить прямо в swf без подобных строк.

Yastreb 01.03.2008 16:28

Цитата:

ByteArray можно зашить прямо в swf без подобных строк.
Можно уточнить смысл этого сообщения?
Заголовок темы: Как забить ByteArray в исходник?

etc 01.03.2008 17:35

Цитата:

Сообщение от Yastreb
Можно уточнить смысл этого сообщения?
Заголовок темы: Как забить ByteArray в исходник?

Flex SDK это умеет, через тег Embed.

MerlinTwi 01.03.2008 21:45

В AS2 была такая директива "__bytecode__(...)" интересно, в AS3 ее совсем убрали, или переименовали?

BlooDHounD 01.03.2008 21:54

либо убрали, либо пока народ не нашёл.

etc 01.03.2008 21:56

Скорее всего убрали, хотя бы по одной простой причине, что работать она не будет.

Xelat 12.03.2008 00:45

Можно просто написать конвертер из HEX-строки в двоичные данные. Останется только получить HEX-строки из нужных файлов и забить как константы в ролик. Так же вместо HEX-а можно использовать base64 (вот и ссылочку одну нашёл http://dynamicflash.com/goodies/base64/), а закодировать нужные файлы в base64 можно и при помощи Total Commander'a


Часовой пояс GMT +4, время: 15:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.