Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как загрузить картинку в экземпляр класса MovieClip? (http://www.flasher.ru/forum/showthread.php?t=113484)

S e c t o r 30.06.2008 18:39

Как загрузить картинку в экземпляр класса MovieClip?
 
Здравия желаю! Други! Хелпаните плизо! :rolleyes: Есть проект, который мне поручили доделать. Проект большой и сложный. Сделан на половину другим человеком. Так как проект не хилый, то любое существенное изменение в алгоритме классов может привести к его полному развалу. Времени как всегда нет, а проект надо завершать... Я всегда был за то, чтобы один человек вел проекты с 0 и до конца, но в жизни разные ситуёвины случаются... :(

Проект на ActionScript 3.0

Мне лишь необходимо знать, с вашего позволения, есть ли возможность загрузить в уже созданный экземпляр класса MovieClip в библиотеке (ну, тоись в клип как таковой) методом load.new URLRequest("Ссылочка") внешнюю картинку? Просто этот экземпляр класса потом используется в длинном коде классов и если выбирать иной путь решения проблеммы, то придеться переписывать всё, а это real UnReal.:o

S e ( t o r

mre 01.07.2008 11:49

Можно. Читайте мануал.

DimensionB 01.07.2008 14:08

2 S e c t o r:

Привет.

Делается это следующим образом:

Начало загрузки:

Код:

var loader:Loader = new Loader();
var url:URLRequest = new URLRequest("sample2.jpg");
loader.load(url);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);

По окончании загрузки будет вызвана функция подписанная на событие Event.COMPLETE, то есть onLoaded(e:Event).

В ней e.target.content и будет твоя картинка, только картинки при загрузке становятся не экземпляром MovieClip, а экземпляром Bitmap, и ничего с этим не поделаешь.

Для того чтобы это был MovieClip проще всего создать новый мувиклип и вставить туда картинку, например следующим образом:

Код:

private function onLoaded(e:Event):void {
                        var mc:MovieClip = new MovieClip();
                        mc.addChild(e.target.content as DisplayObject);

                }

Если возникнут вопросы пиши в личку, пообщаемся.

S e c t o r 06.07.2008 23:34

Огромное спасибо DimensionB!!!!! Я поначалу думал, что мне никто не ответит... Но вот нашелся хороший человек! Вообще для меня оказались очень полезными последние строки:

private function onLoaded(e:Event):void {
var mc:MovieClip = new MovieClip();
mc.addChild(e.target.content as DisplayObject);
}

Этот вопрос я как раз и решил этим способом:
loader:Loader = new Loader() ......
Но вот как вставить закаченную инфу и В КЛИП, не затрагивая библиотечные экземпляры клипов, не знал.... А это очень замечательное решение.!!.. страно, но факт — я почему-то до сих пор не встретил объяснения типа mc.addChild(e.target.content as DisplayObject); ни в хелпе ни в книге «Сборник рецептов ActionScript 3.0», хотя копашусь там считай с утра до вечера....... Огромное спасибо автору...!!!!

S e c t o r 06.07.2008 23:41

Я просто еще пока немогу сразу привыкнуть к AS 3.0... Вот например к этому оператору «as». Но думаю и с ним потихонечку разберусь.... :)

etc 07.07.2008 00:34

S e c t o r, было бы очень классно, если бы вы объединили посты #4 и #5, как единое целое и оформили свой код тегами [code][/code]. Иначе тема закроется, как неликвид.

Сайлас 07.07.2008 00:35

Странно, а в разделе мануала (по F1 который) Programming ActionScript 3.0 / Display programming / Loading display content dynamically там эта структура через раз используется.
Может чтобы привыкнуть к AS 3.0 необходимо прочесть этот раздел (Programming ActionScript 3.0), там все очень хорошо описано.

S e c t o r 08.07.2008 12:08

Спасибо всем огроменное за советы! :) Я просто недавно только зарегился на форуме, но теперь постараюсь обязательно ставить код в соответствующие теги. Вообще мне очень нравиться дружеская атмосфера на форуме! Это самый лучший рускоязычный форум для Флэшеров! :yahoo:

etc 08.07.2008 13:28

Тема таки закрывается.


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

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