Форум 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=165787)

ЗлОй ПрОграММер 26.08.2011 20:39

а без контейнеров нельзя по другому ?
и если не сложно приведите пожалуйста код так как вы посоветовали

fish_r 26.08.2011 20:50

Если очень захотеть то можно. По позиции указателя в событии клика вычислить на какую он битмапу указывает. Определить её место в дисплей листе и, потом уже, двигать командой, типа:
Код AS3:

 
 myContainer.getChildAt(x).x = xxx;

Но оно вам надо?

ЗлОй ПрОграММер 26.08.2011 20:58

нет так ещё хуже)
вот как вы сказали до этого делаю.

Код AS3:

[Embed(source='../lib/Images/Texts/Text2.png')]
var bufferImage1: Class;
TextImage = new bufferImage1();
bufferSprite = new Sprite();
bufferSprite.addChild(textImage);
addChild(bufferSprite);
texts.push(bufferSprite);

правильно я добавил последние строки ?
до этого было так

Код AS3:

[Embed(source='../lib/Images/Texts/Text2.png')]
var bufferImage1: Class;
textImage = new bufferImage1();
texts.push(textImage);

если да то всё равно движутся все изображения

fish_r 26.08.2011 20:58

или немного проще:
Вычислить на какую битмапу указывает, потом двигать саму битмапу без обращения к контейнеру.
Напр.
Код AS3:

texts[0].x += 1;

Но, тоже не комильфо.

Добавлено через 1 минуту
И дальше. Как событие обрабатываете? Покажите.

ЗлОй ПрОграММер 26.08.2011 21:04

Вот весь код только не ругайтесь на плохое его исполнение =)

Код AS3:

package  
{
        import flash.display.DisplayObject;
        import flash.display.Sprite;
        import flash.display.Bitmap;
        import flash.events.MouseEvent;
        import flash.events.Event;
 
        /**
        * ...
        * @author
        */

        public class cTexts extends Sprite
        {
 
                public var ParentMap: Object;
                public var Type: String = '';
 
                private var TextImage: Bitmap;
                private var Texts: Array = new Array();
                private var Childs: Array = new Array();
 
                public function cTexts()
                {
                //----------------------------------------------------------------------
                        if (stage) Initialization();
                        else addEventListener(Event.ADDED_TO_STAGE, Initialization);
                //----------------------------------------------------------------------
                }
 
                private function Initialization(e: Event = null): void
                {
                //----------------------------------------------------------------------
                        LoadTexts();
                        addTexts();
                //----------------------------------------------------------------------
                        addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
                        removeEventListener(Event.ADDED_TO_STAGE, Initialization);
                //----------------------------------------------------------------------
                }
 
                private function MouseOver(e: MouseEvent): void
                {
                //----------------------------------------------------------------------
                        //trace(e.currentTarget);
                        //trace(e.target);
                        //(e.target as DisplayObject).x++
                        e.currentTarget.x ++;
                        trace(Texts[0]);
                        trace(Texts[1]);
                        trace(Texts[2]);
                        trace(Texts[3]);
                //----------------------------------------------------------------------
                }
 
                private function addTexts(): void
                {
                //----------------------------------------------------------------------
                        addChild(Texts[0]); Texts[0].alpha = 0;
                        addChild(Texts[1]); Texts[1].alpha = 0;
                        addChild(Texts[2]);
                        addChild(Texts[3]);
                        addChild(Texts[4]);
                        addChild(Texts[5]); Texts[5].alpha = 0;
                        addChild(Texts[6]); Texts[6].alpha = 0;
                //----------------------------------------------------------------------
                        setTextsPosition();
                //----------------------------------------------------------------------
                }
 
                private function setTextsPosition(): void
                {
                //----------------------------------------------------------------------
                        Texts[0].x = 577;
                        Texts[0].y = 140;
                        Texts[1].x = 647;
                        Texts[1].y = 184;
                        Texts[2].x = 537;
                        Texts[2].y = 289;
                        Texts[3].x = 537;
                        Texts[3].y = 319;
                        Texts[4].x = 537;
                        Texts[4].y = 348;
                        Texts[5].x = 567;
                        Texts[5].y = 148;
                        Texts[6].x = 567;
                        Texts[6].y = 148;
                //----------------------------------------------------------------------
                }
 
                private function LoadTexts(): void
                {
                //----------------------------------------------------------------------
                        [Embed(source='../lib/Images/Texts/Text1.png')]
                        var bufferImage1: Class;
                        TextImage = new bufferImage1();
                        Texts.push(TextImage);
                //----------------------------------------------------------------------
                        [Embed(source='../lib/Images/Texts/Text2.png')]
                        var bufferImage2: Class;
                        TextImage = new bufferImage2();
                        Texts.push(TextImage);
                //----------------------------------------------------------------------
                        [Embed(source='../lib/Images/Texts/Text3.png')]
                        var bufferImage3: Class;
                        TextImage = new bufferImage3();
                        Texts.push(TextImage);
                //----------------------------------------------------------------------
                        [Embed(source='../lib/Images/Texts/Text4.png')]
                        var bufferImage4: Class;
                        TextImage = new bufferImage4();
                        Texts.push(TextImage);
                //----------------------------------------------------------------------
                        [Embed(source='../lib/Images/Texts/Text5.png')]
                        var bufferImage5: Class;
                        TextImage = new bufferImage5();
                        Texts.push(TextImage);
                //----------------------------------------------------------------------
                        [Embed(source='../lib/Images/Texts/Text6.png')]
                        var bufferImage6: Class;
                        TextImage = new bufferImage6();
                        Texts.push(TextImage);
                //----------------------------------------------------------------------
                        [Embed(source='../lib/Images/Texts/Text7.png')]
                        var bufferImage7: Class;
                        TextImage = new bufferImage7();
                        Texts.push(TextImage);
                //----------------------------------------------------------------------
                }
 
        }
 
}


fish_r 26.08.2011 21:15

Не не currenTarget берите, а target - свойство события. Current указывает на объект который подписан на событие, target на объект который явл-ся целевым.

ЗлОй ПрОграММер 26.08.2011 21:18

о чудо и впрямь забыл проверить e.target, большое спасибо) заработало

fish_r 26.08.2011 21:20

Не могу толком код отредактировать.... :(
Покажите трейсы currentTarget и target.

ok

ЗлОй ПрОграММер 26.08.2011 21:24

Код AS3:

[object cTexts]
[object Sprite]


in4core 26.08.2011 21:25

никогда не видел чтобы эмбеды использовались внутри методов. хм..


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

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