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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 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;
		}
	}
}
Заранее благодарен.

Старый 03.02.2008, 14:15
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Посмотрите в словаре, как пишется слово «галерея». И ставьте скобки при использовании оператора new. И не пишите названия методов и переменных с большой буквы, это не c#, здесь свои стандарты.

Подпишитесь на всплывающие мышиные события и проблемы никакой не будет.

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

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

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


 


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


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