Показать сообщение отдельно
Старый 03.02.2008, 12:04
Rodionnn вне форума Посмотреть профиль Отправить личное сообщение для Rodionnn Найти все сообщения от Rodionnn
  № 1  
Ответить с цитированием
Rodionnn

Регистрация: Apr 2007
Сообщений: 60
По умолчанию Помогите создать события динамически

Всем привет.
Помогите с событиями разобраться.
У меня во флэшке грузятся N мувиков (для загрузки использую Loader) и к каждому из них необходимо прикрутить события мыши (MOUSE_OVER, MOUSE_OUT).
В результате необходимо чтобы при наведении на любой из них действия происходили только с тем, на который наведена мышка.
У меня получается, что все изменения происходят с последним загруженным мувиком.

Вот код первого кадра:
Код:
var Images : Array = new Array("image1.jpg", "image2.jpg", "image3.jpg", "image4.jpg");

var objGallary : Gallary = new Gallary(Images);
var ImagesList : Sprite = new Sprite;

ImagesList = objGallary.BuildGallaryList();

addChild(ImagesList);
Вот код класса Gallary:
Код:
package
{
	import flash.display.*;
	import flash.events.*;
	import flash.net.URLRequest;
				
	public class Gallary
	{
		private var maskContainer : Sprite;
		private var Images : Array;
		private var ListContainer : Sprite;
		private var req : URLRequest;
		private var loader : Loader;
		private var Loaders : Array;
		
		public  var offsetLeft : Number;
		public  var offsetTop : Number;
		public  var ListWidth : Number;
		public  var index : Number;
		private var currentIndex : Number; 
				
		public function Gallary(_Images : Array) 
		{ 
			Images = _Images;
			offsetLeft = 5;
			offsetTop = 5;
			ListWidth = 130;
			index = 0;
			Loaders = new Array();
			currentIndex = 0;
		}
		
		public function BuildGallaryList() : Sprite
		{
			ListContainer = new Sprite();
			ListContainer.graphics.beginFill(0xDCDCDC);
			ListContainer.graphics.drawRoundRect(0, 0, 140, 490, 10);
			ListContainer.graphics.endFill();
			
			for each(var Image in Images) 
    			BuildGallaryItem(Image);
			
			for(var i=0; i<index; i++)
			{
				DoScaleAndMove(i);
			}
			
			return ListContainer;
		}
		
		public function BuildGallaryItem(ImageSrc : String)
		{
			loader = new Loader();
			Loaders.push(loader);
			
			req = new URLRequest(ImageSrc);
			loader.load(req);
									
			ListContainer.addChild(loader);			
			index++;
		}
		
		public function DoScaleAndMove(i : Number)
		{
			Loaders[i].scaleX = 0.2;
			Loaders[i].scaleY = 0.2;
			Loaders[i].alpha = 0.5;

			Loaders[i].x = offsetLeft;
			Loaders[i].y = offsetTop;
			offsetTop += 105;
		}
	}
}
Заранее благодарен.