Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите создать события динамически (http://www.flasher.ru/forum/showthread.php?t=107511)

Rodionnn 03.02.2008 12:04

Помогите создать события динамически
 
Всем привет.
Помогите с событиями разобраться.
У меня во флэшке грузятся 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;
                }
        }
}

Заранее благодарен.

etc 03.02.2008 14:15

Посмотрите в словаре, как пишется слово «галерея». И ставьте скобки при использовании оператора new. И не пишите названия методов и переменных с большой буквы, это не c#, здесь свои стандарты.

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


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

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