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

uchineuchi 07.02.2008 05:39

свойство класса, вызывающего экземпляр класса
 
Класс A создаёт в своём конструкторе экземпляр класса B.
Мне необходимо, чтобы конструктор класса B получил значение некоторого свойства класса A, например n:Number.
Т.е. каким образом можно в конструкторе класса B получить ссылу на свойство класса A ?
На ум приходит только вариант по передаче в конструктор A параметра со значением this класса B.

класс A
Код:

package
{
        import flash.display.*;
        public class A extends Sprite
        {
                public var n:Number=200;
                function A ()
                {
                        var _b:B=new B(this);
                }
        }
}

класс B
Код:

package
{
        import flash.display.*;
        public class B extends Sprite
        {
                function B (top)
                {
                        trace (top.n);
                }
        }
}

Вопрос - какие могут быть ещё варианты?

etc 07.02.2008 10:40

Ссылок на данные простых типов не бывает.

uchineuchi 07.02.2008 17:54

Цитата:

Сообщение от __etc
Ссылок на данные простых типов не бывает.

А на какие типы ссылки есть?
Повторюсь, мне надо, чтобы конструктор класса B мог получить значение какого либо свойства из класса вызывающего этот конструктор.

etc 07.02.2008 18:13

Есть ссылки на все, кроме Number, int, uint, Boolean, String.

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

uchineuchi 08.02.2008 01:36

Цитата:

Сообщение от __etc
Есть ссылки на все, кроме Number, int, uint, Boolean, String.

И как же мне в конструкторе B сослаться на свойство, напр.
public var arr:Array класса A ???

etc 08.02.2008 01:56

Код:

package {
    public class A {

        public function A() {
            super();
            this.arr = new Array(1,2,3,4);
        }

        public var arr:Array;
    }
}

Код:

package {
    public class B {

        public function B(arr:Array) {
            super();
            trace(arr);
        }
    }
}

Код:

new B((new A()).arr);

Ноябрь 09.02.2008 09:37

Можно ли вызвать метод класса из экземпляра (другого класса), который в этом классе был создан?
Т.е аналогично вопросу автора топа, только не свойство, а метод.

BlooDHounD 09.02.2008 12:13

а попробывать?

etc 09.02.2008 12:47

Ноябрь, в чем проблема-то?

Ноябрь 09.02.2008 13:52

Код:

package main{
        import flash.display.MovieClip;
    public class base extends MovieClip {

        public function base() {
                        var a = new clip();
                        addChild(a);
        }
                public function tt(){
                        trace ('aaa');
                }
    }
}

package main{
        import flash.display.MovieClip;
        import flash.events.Event;
    public class clip extends MovieClip {
        public function clip() {
                        this.addEventListener(Event.ADDED_TO_STAGE,t);
        }
                public function t(event:Event){
                        this.parent.tt();
                        //parent.tt();
                }
    }
}

метод не находится


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

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