Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Почему flash не выдает ошибку, когда загружаю слишком большое изображение? (http://www.flasher.ru/forum/showthread.php?t=145640)

serdmitriy 14.10.2010 23:43

Почему flash не выдает ошибку, когда загружаю слишком большое изображение?
 
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, unkno, false, 0, true);***
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, ImageLoad, false, 0, true );
loader.load( new URLRequest(file.url) );

file.url - ссылка на изображение выбранное пользователем
если изображение превышает 16 мегапикселей (adobe air) должна быть ошибка.
в итоге нет события complete и нет ошибки, и код зависает!
что делать товарищи!? как отфильтровать большие картинки??

boleg 15.10.2010 17:55

Как один из вариантов:
- грузить картинки с помощью URLLoader.
- узнаем количество байт (bytesTotal)
- если количество байт > лимита, то обрываем загрузку, если нет - то завершаем. Массив байт из URLLoader-a преобразуем в DisplayObject с помощью Loader.loadBytes()

- не забываем укзать URLLoader-у dataFormat = URLLoaderDataFormat.BINARY

i.o. 15.10.2010 17:57

Цитата:

- узнаем количество байт (bytesTotal)
- если количество байт > лимита
jpg может быть сжат с разным качеством. Следовательно делать заключение о разрешении картинки по ее весу неправильно.

serdmitriy 15.10.2010 18:51

пользователь может выбрать jpg, png, или gif изображение. Я пытаюсь сделать так, чтобы программа отфильтровывала изображения, которые flash не понимает. Максимальный размер изображения(4000х4000) png может быть и при размере 1 мб. По размеру не отфильтруешь. А разрешение можно узнать только после загрузки. А после загрузки флеш зависает, никаких событий не отправляя.
Нашел решение http://www.emstris.com/2009/05/extracting-binary-info/
но это слегка снижает производительность.
Кто-нибудь знает, какое событие прослушивать, при load, для того чтобы определить что invalidBitmapData?


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

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