Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Неколько простых вопросов по Event. (http://www.flasher.ru/forum/showthread.php?t=131214)

niil 15.10.2009 17:00

Огромное Вам спаибо. Разобрался. Cобытие срабатывает, получаю имя компонента из параметра расширенного URLLoader'а, но не могу отобразить картинку. Не подскажите в чем могут быть грабли.
Вот тут происходит реакция на событие complete URLLoaderEx (URLLoader)

Код AS3:

function f_ILoad(e:Event){
  var Pan:String(e.target as URLLoaderEx).CompName;
  var Image: Bitmap = (Bitmap)(e.target.content);
  Image.x = 30;
  Image.y = 60;
  Image.visible = true;
  var MC:Object = this.getChildByName(Pan);
  MC.addChild(Image);               
}


Gal4enochek 15.10.2009 17:16

Для загрузки картинок класс Loader используется. (еще раньше удивилась, чего вы вдруг URLLoader начали расширять).
Ну и я обычно выдираю из e.target.content битмап-дату и создаю для нее новый битмап со смузингом
Код AS3:

var bitmap_data :BitmapData = ((e.target as Loader).content as Bitmap).bitmapData;
var container :Bitmap = new Bitmap(bitmap_data, "auto", true);


niil 15.10.2009 17:37

Переделал для Loader и исп. битмап-дату как Вы написали, но Image не выводтся... Черт, в чем же может быть проблема? В типе файла PNG?
Код AS3:

function f_ILoad(e:Event){
  var Pan:String(e.target as LoaderEx).CompName;
  var BData:BitmapData = ((e.target as LoaderEx).content as Bitmap).bitmapData;
  var Image:Bitmap = new Bitmap(BData, "auto", true);
  Image.x = 30;
  Image.y = 60;
  Image.height = 50;
  Image.width = 50;
  Image.visible = true;
  var MC:Object = this.getChildByName(Pan);
  MC.addChild(Image);               
}


Gal4enochek 15.10.2009 17:48

-пройдитесь трейсом (есть ли битмапдата, какой у нее размер, есть ли ваш MC)
-проверте на простом примере загрузить вашу картинку (просто одну)
-попробуйте вместо
Код AS3:

var BData:BitmapData = ((e.target as LoaderEx).content as Bitmap).bitmapData;

вставить
Код AS3:

var BData:BitmapData = new BitmapData(100,100,false, 0xff);

Если и так не заработает, то проблема в клипе, куда вы все это аттачите или в координатах его (его может попросту быть невидно)

И еще
Код AS3:

 var mc:MovieClip= this.getChildByName(Pan) as MovieClip;

и переменные с маленькой буквы принято называть. Ну это так уже не по теме :)

niil 15.10.2009 18:18

Выяснил, что при исп. Loader, вместо URLLoader соыбтие "complete" не генерируется и собстно IOErrorEvent.IO_ERROR тоже.
Кстать, флеха должна качать файлы с сервака. Указываю путь для скачивания:
А если после вызова Loader, прописать Pan.addChild(LoaderEx); - картинка появляется
Код AS3:

var UrlRequest:URLRequest = new URLRequest('../resurs/menu/mi_' + Type1 + '_' + Type2 + '.png'); // или menu/mi_' + Type1 + '_' + Type2 + '.png' - флешка располагается в папке resurs


gloomyBrain 15.10.2009 18:30

Цитата:

при исп. Loader, вместо URLLoader соыбтие "complete" не генерируется и собстно IOErrorEvent.IO_ERROR тоже
Событие генерируется, только не самим Loader, а его Loader.contentLoaderInfo - именно его нужно подписывать на оба события при использовании Loader
А картинка появляется как раз после генерации события COMPLETE - т.к. Loader является наследником DisplayObject'а.

Psycho Tiger 15.10.2009 19:17

Gal4enochek, а зачем делать новуюбитмапдату для смузинга?
Качество картинок, что дает loader весьма отличное, или я не понимаю чего?)

Gal4enochek 15.10.2009 19:43

Psycho Tiger, я так делаю просто, если потом битмап скейлить нужно будет. Иначе битое изображение выходит.

Добавлено через 3 минуты
Правда можно просто smoothing конечно выставить. Просто во многих случаях именно сама битмапдата нужна для дальнейшей обработки, вот по привычке и выдираю ее из лоадера :rolleyes:, а потом где нужно использую.


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

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