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

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

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

Регистрация: May 2006
Сообщений: 16
По умолчанию Ошибка с onRelease на загружаемом мувике

Есть вот такой код:

Код AS1/AS2:
var n:Number = 1;
var current_x:Number = 0;
var current_y:Number = 0;
for (var i:Number = 1; i < 150; i++) {
	n = randRange(1, 12);
	this.createEmptyMovieClip("mcImage"+i, this.getNextHighestDepth());
	var my_Loader:MovieClipLoader = new MovieClipLoader()
	my_Loader.loadClip("sq_swf/"+n+".swf", "mcImage"+i);
	_root["mcImage"+i]._x=current_x;
	_root["mcImage"+i]._y=current_y;
	_root["mcImage"+i].onRelease = function() {
  		trace("YEAH!");
	};
Мувики загружаются случайно, при этом на каждого должно вешатся событие, но почему-то не работает. WHY?

Старый 25.12.2009, 19:39
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 2  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
Потому что вы вышаете онРелиз не дождавшись, когда клип загружится

Старый 25.12.2009, 19:46
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 3  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
1. В цикле оставьте только создание пустого мувика и loadClip
2. Используйте один экземпляр MCL. У вас их 150 штук - безумие.
3. Для решения вашей проблемы используйте один общий метод onLoadInit.
Внутри этого метода и координаты меняйте и обработчики назначайте.

Добавлено через 14 минут
Код AS1/AS2:
var n:Number = 1;
var current_x:Number = 0;
var current_y:Number = 0;
 
this.onLoadInit = function  (target_mc:MovieClip) {
	target_mc._x = current_x;
	target_mc._y = current_y;
	target_mc.onRelease = mcOnRelease;	
};
 
function mcOnRelease () {
	  trace('Я  - контейнер с загруженным мувиком, я зовусь ' + this);
}
 
var my_Loader:MovieClipLoader = new MovieClipLoader();
my_Loader.addListener(this);
 
for (var i:Number = 1; i < 150; i++) {
	n = randRange(1, 12);
	this.createEmptyMovieClip('mcImage' + i, this.getNextHighestDepth());
	my_Loader.loadClip('sq_swf/' + n + '.swf', 'mcImage' + i);
}
В данном случае в роли слушателя выступает объект с текущим таймлайном, например, _root).
Только поскольку координаты контейнерам у вас присваиваются одинаковые, они у вас лепиться один на другой будут.


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

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

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


 


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


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