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

sanyasanya 01.10.2010 13:21

мувик вносит себя в массив
 
подскажите пжлста. а то блин переход на AS3 какой-то уж очень болезненный :(
значит я на сцене создаю кучу разных МувиКлипов и хочу, чтоб они сами себя вносили в массив. раньше я писал внутри каждого МувиКлипа
Код AS1/AS2:

_parent.addBox(this);

а на главной сцене писал
Код AS1/AS2:

var boxes = [];
addBox = function (obj) {
        boxes.push(obj);
}

а как в AS3? не могу раздуплиться..

random13 01.10.2010 13:35

хмм а в чем проблема то?

Код AS3:

package
{       
        public class MyClass extends MovieClip
        {
                private var arr:Array = new Array;
 
                public function MyClass()
                {
 
                }
 
                public function addArr(obj:Object):void
                {
                        arr.push(obj);
                }
        }
}

как то так или я не понимаю вас

derhab 01.10.2010 13:38

такой вариант:
в документ классе Main

Код AS3:

private var _boxes:Array = [];
...
public function addBox(box:Box):void
{
    if(_boxes.indexOf(box) == -1)
    _boxes.push(box);
}

в каждом экземпляре box:

Код AS3:

// в конструктор передается ссылка на Main
public function Box(main:Main)
{
    main.addBox(this);
}


Bgg 01.10.2010 13:44

random13, массив выше, а не в самом MovieClip.
Я бы слал событие.
Код AS3:

package
{       
        public class MyClass extends MovieClip
        {
                public static constr PLEASE_TAKE_ME_MY_MASTER:String="please take me my master";
 
                public function MyClass()
                {
                        addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                public function init(obj:Object):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        dispatchEvent(new Event(PLEASE_TAKE_ME_MY_MASTER, true));
                }
        }
////////////////////////////////////////////////////////////////////////
        public class Main extends Sprite
        {
                private var arraySlaves:Array = new Array;
 
                public function Main()
                {
                        addEventListener(MyClass.PLEASE_TAKE_ME_MY_MASTER, takeHim);
                }
 
                public function takeHim(event:Event):void
                {
                        arraySlaves.push(event.target as MyClass);
                }
        }
}


sanyasanya 01.10.2010 14:05

а без классов можно?:rolleyes:
я еще до них не дошёл..

arkadattx 01.10.2010 14:08

Как можно писать на ас3, не дойдя до классов? Это нонсенс

random13 01.10.2010 14:27

Цитата:

Сообщение от Bgg (Сообщение 940081)
random13, массив выше, а не в самом MovieClip.
Я бы слал событие.
Код AS3:

package
{       
        public class MyClass extends MovieClip
        {
                public static constr PLEASE_TAKE_ME_MY_MASTER:String="please take me my master";
 
                public function MyClass()
                {
                        addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                public function init(obj:Object):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        dispatchEvent(new Event(PLEASE_TAKE_ME_MY_MASTER, true));
                }
        }
////////////////////////////////////////////////////////////////////////
        public class Main extends Sprite
        {
                private var arraySlaves:Array = new Array;
 
                public function Main()
                {
                        addEventListener(MyClass.PLEASE_TAKE_ME_MY_MASTER, takeHim);
                }
 
                public function takeHim(event:Event):void
                {
                        arraySlaves.push(event.target as MyClass);
                }
        }
}



слушайте а объясните что человек хотел, а то я видно так и не понял

КорДум 01.10.2010 14:35

Цитата:

а без классов можно?
я еще до них не дошёл..
Тогда вы остались на уровне as1. Даже в as2 уже были классы.

Zebestov 01.10.2010 14:41

Цитата:

Сообщение от sanyasanya (Сообщение 940070)
значит я на сцене создаю кучу разных МувиКлипов и хочу, чтоб они сами себя вносили в массив

Эта ключевая фраза заставляет спросить: зачем делать все так неправильно?
Ну раз уже "кто-то" создает твои мувики — так пускай он же и заносит их в массив не?

sanyasanya 01.10.2010 15:05

какие все умные:)
чаще вытирайте пузырьки с ноздрей
сделал уже, по рахитному, но работает. всем спасибо


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

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