Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблемы с Loader::loadBytes() (http://www.flasher.ru/forum/showthread.php?t=170274)

spooner 21.10.2011 15:37

Проблемы с Loader::loadBytes()
 
Код AS3:

var image:Loader = new Loader();
image.contentLoaderInfo.addEventListener(Event.OPEN, imageOpenHandler);
image.contentLoaderInfo.addEventListener(Event.INIT, imageInitHandler);
image.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoadCompleteHandler);
image.contentLoaderInfo.addEventListener(Event.DEACTIVATE, imageDeactivateHandler);
image.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, imageIOErrorHandler);
image.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageProgressHandler);
image.loadBytes(imageBytes);//imageBytes:ByteArray - содержит картинку в соответствующем виде

В результате не наступает ни одного события, кроме ProgressEvent.PROGRESS, которое говорит, что все загрузилось.

trng 21.10.2011 17:05

Скорее всего картинка таки НЕ в соответствующем виде.
Другие картинки пробовали?
В imageBytes как картинка попадает?

spooner 21.10.2011 17:20

В imageBytes картинка попадает не просто, действительно.
И что именно там заранее сказать сложно, но...
При попытке загрузить фигню в качестве картинки отправляется IOErrorEvent.IO_ERROR с "Error #2124: Неизвестный тип загруженного файла."
И вообще почему ProgressEvent.PROGRESS отправляется, а Event.OPEN - нет?

trng 21.10.2011 17:27

Если в imageBytes картинка попадает "не просто", то для начала выгрузите её в файл и откройте без всякого флеша.
И давайте уточним в таком случае: loader.loadBytes загружает jpg, gif, png, swf И БОЛЬШЕ НИЧЕГО ДРУГОГО.

spooner 21.10.2011 17:35

Есть такой книжный формат fb2, знаете?
Там картинки можно вставлять в таком виде примерно:
Код:

<binary id="playma.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAgEASABIAAD/7Q/MUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAM2eb82KH//2Q==</binary>
Вот ее и надо достать.

Psycho Tiger 21.10.2011 17:50

*Домыслы*
Event.OPEN говорит о том, что HTTP соединение открылось. Если мы грузим байты с локальной машины - о какой HTTP может идти речь? Потому и не приходит.

Genzo 21.10.2011 17:50

А она там не в base64 ?

trng 21.10.2011 17:51

Не силен в fb2, но это наверняка base64. Сделайте base64decode и таки запишите в файл. И посмотрите что оно такое.

spooner 21.10.2011 17:52

Цитата:

Сообщение от Genzo (Сообщение 1040884)
А она там не в base64 ?

точно так

Добавлено через 1 минуту
Цитата:

Сообщение от Psycho Tiger (Сообщение 1040883)
*Домыслы*
Event.OPEN говорит о том, что HTTP соединение открылось. Если мы грузим байты с локальной машины - о какой HTTP может идти речь? Потому и не приходит.

Вот не знал, спасибо, что просветили. В справке то...
Цитата:

open:Event — Отправляется объектом contentLoaderInfo после начала операции.

Genzo 21.10.2011 17:54

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

spooner 21.10.2011 18:15

Действительно фигня какая-то.
Сохранение в файл дало ерунду.
Код AS3:

Base64.decodeToByteArray(binary);

возвращает 23 кБ, а
Код AS3:

Base64.decode(binary);

- строку из 4х символов.

Genzo 21.10.2011 18:25

Смотря каким декодером пользуетесь, мне кажется вам нужно использовать JPEGDecoder, а не Loader

spooner 21.10.2011 18:56

Всем спасибо за помощь.
Оказалось у меня класс Base64 кривой был вот этот. Взял другой - все заработало без бубнов и JPEGDecoder'ов.


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

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