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

Chelovek 11.06.2013 18:45

Как узнать имя экземпляра класса?
 
Допустим есть простой класс:
Код AS3:

package 
{
        public class Klass extends MovieClip
        {
                import flash.display.*;
 
                public function Klass()
                {
                }
        }
 
}

В первом кадре написано:
Код AS3:

var k1:Klass = new Klass();
addChild(k1);

Возможно ли как-то из класса Klass узнать имя экземпляра этого класса ( k1 ).
Заранее спасибо.

caseyryan 11.06.2013 19:33

Нет. Да и зачем? Сам экземпляр ссылается на себя через this
вот это k1 все равно не сохранится после компилирования.

maincode 11.06.2013 19:58

Если очень надо, то можно как нибудь так:
Код AS3:

package 
{
        import flash.display.*;
 
        public class Klass extends MovieClip
        {
                private var _name:String;
                public function Klass(_name:String)
                {
                        this._name = _name;
                }
                public function get name():String {return _name;}
        }
 
}

Код AS3:

var k1:Klass = new Klass('k1');
addChild(k1);
trace(k1.name);


Psycho Tiger 11.06.2013 20:20

Цитата:

Сообщение от maincode (Сообщение 1137623)
Если очень надо, то можно как нибудь так:
Код AS3:

package 
{
        import flash.display.*;
 
        public class Klass extends MovieClip
        {
                private var _name:String;
                public function Klass(_name:String)
                {
                        this._name = _name;
                }
                public function get name():String {return _name;}
        }
 
}

Код AS3:

var k1:Klass = new Klass('k1');
addChild(k1);
trace(k1.name);


name есть стандартный.

Chelovek 12.06.2013 11:46

Если сделать так:
Код AS3:

package 
{
        import flash.display.*;
 
        public class Klass extends MovieClip
        {
                private var _name1:String;
 
                public function Klass(_name1:String)
                {               
                        this._name1 = _name1;
                }
 
                public function get name1():String
                {
                        return _name1;
                }
        }
}

Код AS3:

var k1:Klass = new Klass('k1');
addChild(k1);
trace(k1.name1);

То флеш выдаёт ошибку:
Монтажный кадр 1, слой "Actions", кадр 1, строка 4 1136: Неправильное количество аргументов. Ожидается 0.

etc 12.06.2013 15:55

Жалуется на 4 строку, которой вообще нет.


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

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