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

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

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

Регистрация: Dec 2006
Сообщений: 7
По умолчанию путаница в обращении к объектам

у меня есть мувик2, вложенный в мувик1.
из _root выполняю код который вставляет jpeg в мувик2.

выглядит это все вот так:

Код:
for (i=1; i<=num; i++) {
	createLogo(i, xleft);
}

function createLogo (id, xleft) {
	_root.mov1.mov2.createEmptyMovieClip("logo"+id, id);
	_root.mov1.mov2.loadMovie("images/logo"+id+".jpg", "logo"+id);
	setProperty(this["logo"+id], _x, xleft);
}
ну или так

Код:
for (i=1; i<=num; i++) {
	createLogo(i, xleft);
}

function createLogo (id, xleft) {
	_root.mov1.mov2.createEmptyMovieClip("logo"+id, id);
	_root.mov1.mov2.loadMovie("images/logo"+id+".jpg", "logo"+id);
	setProperty(_root.mov1.mov2["logo"+id], _x, xleft);
}
картинка подгружается, а вот параметры не задаются. я думаю что накосячил с обращением к обьекту, но не знаю как правильно обратиться?

мне еще потом надо будет событие на подгруженную картинку повесить, это можно будет сделать из _root ??? как?

а то _root.mov1.mov2["logo"+id].onPress = function () { ... }
тоже что-то не работает ))

помогите плиз, разобраться где я туплю

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Код:
function createLogo (id, xleft) {
	var mc:MovieClip = _root.mov1.mov2.createEmptyMovieClip ("logo" + id, id);
	mc.loadMovie ("images/logo" + id + ".jpg");
	mc_x = xleft;
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 28.12.2006, 13:55
footer вне форума Посмотреть профиль Отправить личное сообщение для footer Найти все сообщения от footer
  № 3  
Ответить с цитированием
footer

Регистрация: Dec 2006
Сообщений: 7
спасибо! теперь работает, но все равно осталась одна проблемка.
мне нужно на каждую подгруженную картинку повесить по 2 события: onRollOver и onPress

Код:
function createLogo (id, xleft) {
	var mc:MovieClip = _root.logobox.logo.createEmptyMovieClip ("logo" + id, id);
	mc.loadMovie ("images/logo" + id + ".jpg");
	mc._x = xleft;
	mc._y = 3;
	mc.onPress = function () {
		getURL("http://www.ya.ru/");
	}
}
вот такой код не работает (перекрывающих обработчиков событий точно нет), как правильно повесить событие и вообще я могу это сделать прямо из этой функции?


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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Вешать событие на клип в который еще не закончилась загрузка нельзя. Поэтому либо надо использовать класс MovieClipLoader и его событие onLoadComplete. Либо вешать onPress не на mc, а на его предка.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 28.12.2006, 15:06
footer вне форума Посмотреть профиль Отправить личное сообщение для footer Найти все сообщения от footer
  № 5  
Ответить с цитированием
footer

Регистрация: Dec 2006
Сообщений: 7
ага, разобрался - все работает, сделал вот так:

Код:
function createLogo (id, xleft) {
	var mc:MovieClip = _root.mov1.mov2.createEmptyMovieClip ("logo" + id, id);
	var loader:MovieClipLoader = new MovieClipLoader();
	var listener:Object = new Object();
	loader.addListener(listener);
	loader.loadClip("images/logo" + id + ".jpg", mc);

	mc._x = xleft;
	mc._y = 3;

	listener.onLoadComplete = function(mc:MovieClip) {
		mc.onPress = function () {
			getURL(_root["url"+id]);
		}
	};
}
есть еще один вопрос на ту же тему: как достучаться до обьекта...

в mov1 есть 2 кейфрейма и между ними задан motion. там мувик mov2 движется из одной точки в другую.
так вот, позиция mov2 во втором кейфрейме должна должна изменяться в зависимости от кол-ва подгруженных картинок в него, эта величина у меня есть в переменной.

как мне изменить параметр _x у mov2 именно во втором кейфрейме, а в первом он должен остаться на месте?
я пробывал задать mov2 другой instance name и обратиться именно к нему, но кажется не работает:
Код:
_root.mov1.mov2_end._x = xleft;
видимо нужно писать код именно в том 2-м кейфрейме, но не пойму, может этот код там на событие какое-нибудь надо повесить?

p.s. возможно элементарные вопросы, но просто я с action script знаком 2-й день, а работа горит и нет времени чтобы внимательно почитать учебники, пока просто подглядываю справку по функциям или готовые решения на форумах.


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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Сообщение от footer
в mov1 есть 2 кейфрейма и между ними задан motion. там мувик mov2 движется из одной точки в другую.
так вот, позиция mov2 во втором кейфрейме должна должна изменяться в зависимости от кол-ва подгруженных картинок в него, эта величина у меня есть в переменной.
То есть вы программно хотите изменить координаты для объекта который двигается с помощью motion tween в таймлайне? Этого сделать нельзя. Нужна только полностью программная анимация.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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