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

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

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

Регистрация: Jul 2010
Сообщений: 8
По умолчанию Передача переменной в событие

Я почитал форум и понял что для этого нужно использовать LOLEvent. А вот как использовать я не могу понять

Вот фрагмент моего кода :

Код AS3:
import src.LOLEvent;
 
function displayExercise() {
	var i,j:Number;
	var s : String;
	for (i=1; i<=numexercise; i++) {
		for (j=1; j<=Ex[i].num; j++) {
			var picloader:Loader = new Loader( );
			s=String(i)+"_"+String(j);
                        //этому эвенту нужно передать s...
			picloader.contentLoaderInfo.addEventListener(Event.INIT, picLoad);
			picloader.load(new URLRequest(Ex[i].picName[j]));
 
		}
	}
 
	function picLoad(event:Event) {
		//...а здесь переданное s получить.
	}
 
}
Код LOLEvent.as :

Код AS3:
package src{
 
	import flash.events.Event;
 
	public class LOLEvent extends Event {
		public static const LOL:String='lol';
 
		private var _lol:String;
		public function get lol():Stirng {
			return this._lol;
		}
 
		public function LOLEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, lol:String='') {
			super(type, bubbles, cancelable);
			this._lol=lol;
		}
 
		public override function clone():Event {
			return new LOLEvent(super.type, super.bubbles, super.cancelable, this._lol);
		}
	}
}
как мне теперь объявить событие конца загрузки используя LOLEvent а не обычный евент как сейчас?


Последний раз редактировалось kynisa; 05.08.2010 в 18:21.
Старый 05.08.2010, 19:27
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
вот такой вариант посмотри
имо, самый естественный (т.е. простой и ясный)
Код AS3:
var loadMap:Dictionary = new Dictionary();
 
function displayExercise() :void
{
	var i:int, j:int;
	var s: String;
	for (i = 1; i <= numexercise; i++) 
	{
		for (j = 1; j <= Ex[i].num; j++) 
		{
			var picloader:Loader = new Loader();
			s = i + "_" + j;
			loadMap[picloader.contentLoaderInfo] = s;
			//этому эвенту нужно передать s...
			//да, но можно не суетится, все будет понятно по targrt евента
			picloader.contentLoaderInfo.addEventListener(Event.INIT, picLoad);
			picloader.load(new URLRequest(Ex[i].picName[j]));
 
		}
	}
}
 
function picLoad(event:Event):void
{
	var targ:LoaderInfo = LoaderInfo(event.target);
	var str:String = loadMap[targ];
	trace( "str : " + str );//...а здесь переданное s получить.
 
}

Старый 05.08.2010, 19:45
kynisa вне форума Посмотреть профиль Отправить личное сообщение для kynisa Найти все сообщения от kynisa
  № 3  
Ответить с цитированием
kynisa

Регистрация: Jul 2010
Сообщений: 8
спасибо большое, все работает!

* и теперь я знаю что такое Dictionary *

а как теперь в функции picLoad получить контент того лоадера, который загрузился?


Последний раз редактировалось kynisa; 05.08.2010 в 19:58.
Старый 05.08.2010, 20:11
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
f
Код AS3:
unction picLoad(event:Event):void
{
	var targ:LoaderInfo = LoaderInfo(event.target);
	var loader:Loader = targ.loader;
	var content:DisplayObject = loader.content;
}

Старый 05.08.2010, 21:46
kynisa вне форума Посмотреть профиль Отправить личное сообщение для kynisa Найти все сообщения от kynisa
  № 5  
Ответить с цитированием
kynisa

Регистрация: Jul 2010
Сообщений: 8
Спасибо еще раз!

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

Теги
event , EventListener , loader , LOLEvent

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

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


 


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


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