![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Привет!
В мувик на сцене загрузил MovieClipLoader-ом картинку (jpg). Возникла необходимисть приаттачить в этот клип другой клип из библиотеки. И не получается. var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
image_mc._xscale = image_mc._yscale=50;
image_mc._x = 100;
image_mc._y = 100;
image_mc.onPress = function() {
// пробую сразу подгрузить и клип-маркер
this.attachMovie("gmarcer", "gmarcer", 1000);
trace("1 "+this.gmarcer);
this.startDrag();
};
image_mc.onRelease = function() {
this.stopDrag();
};
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
// загрузка картинки
b_btn.onPress = function() {
image_mcl.loadClip("1.jpg", image_mc);
};
// до загрузки картинки gmarcer аттачится, после нет
b1_btn.onPress = function() {
image_mc.attachMovie("gmarcer", "gmarcer", 1000);
trace("2 "+image_mc.gmarcer);
};
Подскажите, где грабли. Спасибо. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Грабли в том, что этого сделать просто нельзя. После загрузки в клип объекта, сам клип подменяется этим объектом. Если бы грузили не картинку, а swf, то аттач бы произошел не в image_mc, а в рут самого swf. А так как грузим картинку, то аттачить просто некуда.
Поэтому есть два выхода, либо создавать отдельный контейнер для картинки, либо грузить картинку, снимать с нее битмапДату, выгружать картинку и аттачить битмап и символ из библиотеки. |
|
|||||
|
Спасибо, iNils.
Я в принципе так и делал. В контейнере паралельном клипу для картинки грузились 4 клипа-маркера. Ими я масштабировал кртинку. добрый кусок кода отвечал за совмещения двух клипов: картинки и контейнера с маркирами. Когда возникла необходимость группировки нескольких клипов (задача гоуппировки решена), захотелось помечать клипы в группе. Снова использовать контейнер с маркирами не хотелось из-за кода. Там, где в гуппу входили клипы и програмная графика все тип-топ, а с jpg - облом. Это на стадии разработки надо было предусмотреть. А сейчас надо перелапатить около 2000 строк для добавления еще одного контейнера. Что самое обидное - к клипу с загруженной джепежкой обращаешься как к клипу, а он уже и не клип... Добавлено: Ой, уважаемый гуру silin что-то дабавил. Спасибо, сейчас буду пробовать. Последний раз редактировалось Жень Шень; 21.10.2008 в 14:56. |
|
|||||
|
грабли в том, что приаттачить к загруженному можно только из его же библиотеки
(с swf будет та же история) если грузить в контейнер, созданный для картинки, то сам image_mc будет 'своим' и все получится image_mcl.loadClip("1.jpg", image_mc.createEmptyMovieClip("body", 0)); Последний раз редактировалось silin; 21.10.2008 в 14:48. |
|
|||||
|
есть хаковый выход:
аттачить от имени родителя, но в себя же target_mc._parent[target_mc].attachMovie("gmarcer", "gmarcer", 1000); UPD: не работает так, сори Последний раз редактировалось silin; 21.10.2008 в 15:35. |
|
|||||
|
Banned
|
Цитата:
![]() |
|
|||||
|
Я еще вчера так пытался обмануть и в кавычках
![]() ![]() ![]() А насчет "а он уже и не клип..." - ну, это я так, образно. Мы ж "картинкой" манипулируем... Господа, а что тогда есть jpg в мувике? Объект? Если "После загрузки в клип объекта, сам клип подменяется этим объектом", то картинка - суть клип, но уже без возможности аттача? А может еще что-нить не как у клипа? Надо будет на досуге перепроверить все методы... |
|
|||||
|
Banned
|
Ну да, графический объект. Растровый. Как если бы вы его не грузили извне, а сразу на таймлайн положили во флеш-редакторе.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 13:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|