Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.08.2012, 20:57
acee вне форума Посмотреть профиль Отправить личное сообщение для acee Найти все сообщения от acee
  № 1  
Ответить с цитированием
acee

Регистрация: Aug 2012
Сообщений: 4
Attention Loader.contentLoaderInfo Event.COMPLETE не срабатывает

Проблема в следующем при загрузке .png большого размера (подразумеваю размер картинки, не файла) все байты файла загружаются полностью. Только вот Event.COMPLETE не наступает вообще. И loader.content имеет значение null.

Если взять допустим другую картинку, например эту: "http://www.bestvinyl.ru/editor/sketches/HTCEvo3D.png", то все работает отлично. Не могу понять в чем дело. Прошу помощи, спасибо!

Код AS3:
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.ProgressEvent;
 
var request: URLRequest = new URLRequest("http://www.bestvinyl.ru/editor/sketches/HPPavilionG7.png");
var loader: Loader = new Loader();
 
loader.load(request);
 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loaderProgress);
 
function loaderComplete(e: Event): void {
	addChild(loader);
	trace("Load complete!");
}
 
function loaderProgress(e: ProgressEvent): void {
	trace ("Loaded: " + e.bytesLoaded + " of " + e.bytesTotal + ";");
}

Старый 06.08.2012, 23:15
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 2  
Ответить с цитированием
gagaga

Регистрация: Apr 2012
Сообщений: 239
Код AS3:
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loaderProgress);
 
loader.load(request);
Добавлено через 3 минуты
Код AS3:
package {
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.URLRequest;
 
    public class LoaderExample extends Sprite {
        private var url:String = "Image.gif";
 
        public function LoaderExample() {
            var loader:Loader = new Loader();
            configureListeners(loader.contentLoaderInfo);
            loader.addEventListener(MouseEvent.CLICK, clickHandler);
 
            var request:URLRequest = new URLRequest(url);
            loader.load(request);
 
            addChild(loader);
        }
 
        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(Event.INIT, initHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(Event.UNLOAD, unLoadHandler);
        }
 
        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }
 
        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }
 
        private function initHandler(event:Event):void {
            trace("initHandler: " + event);
        }
 
        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
 
        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }
 
        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }
 
        private function unLoadHandler(event:Event):void {
            trace("unLoadHandler: " + event);
        }
 
        private function clickHandler(event:MouseEvent):void {
            trace("clickHandler: " + event);
            var loader:Loader = Loader(event.target);
            loader.unload();
        }
    }
}

Старый 06.08.2012, 23:48
acee вне форума Посмотреть профиль Отправить личное сообщение для acee Найти все сообщения от acee
  № 3  
Ответить с цитированием
acee

Регистрация: Aug 2012
Сообщений: 4
Да, очень логично скопировать из Helpa. Но я там был и данный кусок кода так же беспомощен, как и тот, который выше.

Старый 07.08.2012, 10:14
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 4  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от acee Посмотреть сообщение
Да, очень логично скопировать из Helpa. Но я там был и данный кусок кода так же беспомощен, как и тот, который выше.
Я бы не рекомендовал вам еще и дерзить.

Нет смысла загружать столь большую картинку. Порежьте её на части, и подгружайте при необходимости определенный кусок. И проблема сама собой отпадет, и производительность будет куда лучше.
__________________
adobe AS3 manual

Старый 06.08.2012, 23:56
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 5  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Вы пытаетесь загрузить изображение размером 4261 x 5118 пикселей. И если Вы компилите под FP9, то там есть ограничение на размер изображения: "это ограничение составляет 2 880 пикселей в высоту и 2 880 пикселей в ширину." Для FP10: 8,191х8,191. Для 11 (какая точно версия не помню) версии это ограничение снято. Возможно проблема в этом.
__________________
http://www.chessmax.ru

Старый 07.08.2012, 01:28
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 6  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
так подпишитесь на все события из "хелпа".
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 07.08.2012, 01:34
acee вне форума Посмотреть профиль Отправить личное сообщение для acee Найти все сообщения от acee
  № 7  
Ответить с цитированием
acee

Регистрация: Aug 2012
Сообщений: 4
Компилирую под FP10.2
Вроде границы допускают 4261 x 5118.
Попробую на 11-м.

Спасибо за ответ!

Старый 07.08.2012, 08:41
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 8  
Ответить с цитированием
gagaga

Регистрация: Apr 2012
Сообщений: 239
зачем вам такая картинка? таких мониторов не бывает

Добавлено через 42 минуты
Цитата:
Сообщение от Inet_PC Посмотреть сообщение
Для FP10: 8,191х8,191.
это не так....
В AIR 1.5 и Flash Player 10 максимальный размер объекта BitmapData составляет 8,191 пикселя в ширину или высоту, а общее количество пикселей не может превышать 16,777,215. (Т. е. если ширина объекта BitmapData составляет 8,191 пикселя, его высота не может быть больше 2 048 пикселей.)

Старый 10.08.2012, 01:35
acee вне форума Посмотреть профиль Отправить личное сообщение для acee Найти все сообщения от acee
  № 9  
Ответить с цитированием
acee

Регистрация: Aug 2012
Сообщений: 4
все вроде бы хорошо. только одна странная вещь: запуская .swf из плеера все хорошо работает. если флешка работает из браузера - проблема таже.
Player: FP11.2

Добавлено через 4 минуты
Цитата:
Сообщение от strangedk Посмотреть сообщение
Я бы не рекомендовал вам еще и дерзить.

Нет смысла загружать столь большую картинку. Порежьте её на части, и подгружайте при необходимости определенный кусок. И проблема сама собой отпадет, и производительность будет куда лучше.
Не очень похоже на дерзость. Я уважаю здешние правила и перерыл все, что смог найти на данную тему в интернете и на форуме. Так что скорее всего я был на страницах adobe.

Идея с нарезкой уже приходила в голову. Это проблемно для заказчика. Хотелось бы найти выход из этого. Если ничего не получиться - нарезка идеальный выход.

Старый 10.08.2012, 02:07
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 10  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Такую картинку можно было бы и сжать раз в 100500, а потом растянуть. Вряд-ли, что сильно бы изменилось.
Вернее растягивать только видимые на экране куски.
__________________
Отряд Котовскага

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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