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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.10.2008, 13:54
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 1  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Smile Как приаатачить клип в клип после загрузки в него jpg?

Привет!
В мувик на сцене загрузил 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);
};
Это упрощенный код.
Подскажите, где грабли. Спасибо.

Старый 21.10.2008, 14:23
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Грабли в том, что этого сделать просто нельзя. После загрузки в клип объекта, сам клип подменяется этим объектом. Если бы грузили не картинку, а swf, то аттач бы произошел не в image_mc, а в рут самого swf. А так как грузим картинку, то аттачить просто некуда.

Поэтому есть два выхода, либо создавать отдельный контейнер для картинки, либо грузить картинку, снимать с нее битмапДату, выгружать картинку и аттачить битмап и символ из библиотеки.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.10.2008, 14:51
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 3  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Спасибо, iNils.
Я в принципе так и делал. В контейнере паралельном клипу для картинки грузились 4 клипа-маркера. Ими я масштабировал кртинку. добрый кусок кода отвечал за совмещения двух клипов: картинки и контейнера с маркирами. Когда возникла необходимость группировки нескольких клипов (задача гоуппировки решена), захотелось помечать клипы в группе. Снова использовать контейнер с маркирами не хотелось из-за кода. Там, где в гуппу входили клипы и програмная графика все тип-топ, а с jpg - облом. Это на стадии разработки надо было предусмотреть. А сейчас надо перелапатить около 2000 строк для добавления еще одного контейнера. Что самое обидное - к клипу с загруженной джепежкой обращаешься как к клипу, а он уже и не клип...
Добавлено:
Ой, уважаемый гуру silin что-то дабавил. Спасибо, сейчас буду пробовать.


Последний раз редактировалось Жень Шень; 21.10.2008 в 14:56.
Старый 21.10.2008, 14:45
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
грабли в том, что приаттачить к загруженному можно только из его же библиотеки
(с swf будет та же история)

если грузить в контейнер, созданный для картинки, то сам image_mc будет 'своим' и все получится
image_mcl.loadClip("1.jpg", image_mc.createEmptyMovieClip("body", 0));


Последний раз редактировалось silin; 21.10.2008 в 14:48.
Старый 21.10.2008, 14:58
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от silin Посмотреть сообщение
грабли в том, что приаттачить к загруженному можно только из его же библиотеки...
Кстати да
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.10.2008, 14:57
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>обращаешься как к клипу, а он уже и не клип...
не, он клип, у него все(свойства/методы) есть, кроме доступа к библиотеке основного

Старый 21.10.2008, 15:06
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 7  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
есть хаковый выход:
аттачить от имени родителя, но в себя же
target_mc._parent[target_mc].attachMovie("gmarcer", "gmarcer", 1000);

UPD: не работает так, сори


Последний раз редактировалось silin; 21.10.2008 в 15:35.
Старый 21.10.2008, 15:29
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 8  
Ответить с цитированием
chingachgoog
Banned
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от silin Посмотреть сообщение
есть хаковый выход:
аттачить от имени родителя, но в себя же
target_mc._parent[target_mc].attachMovie("gmarcer", "gmarcer", 1000);
Не понял в чем выход? Обмануть самого себя? Хочу аттачить в target_mc (image_mc), но все равно приатачу в рут?

Старый 21.10.2008, 16:26
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 9  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от silin Посмотреть сообщение
target_mc._parent[target_mc].attachMovie("gmarcer", "gmarcer", 1000);
Я еще вчера так пытался обмануть и в кавычках
А насчет "а он уже и не клип..." - ну, это я так, образно. Мы ж "картинкой" манипулируем...
Господа, а что тогда есть jpg в мувике? Объект? Если "После загрузки в клип объекта, сам клип подменяется этим объектом", то картинка - суть клип, но уже без возможности аттача? А может еще что-нить не как у клипа? Надо будет на досуге перепроверить все методы...

Старый 21.10.2008, 16:30
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 10  
Ответить с цитированием
chingachgoog
Banned
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от Жень Шень Посмотреть сообщение
а что тогда есть jpg в мувике? Объект?
Ну да, графический объект. Растровый. Как если бы вы его не грузили извне, а сразу на таймлайн положили во флеш-редакторе.

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

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

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


 


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


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