PDA

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


Chelovek
11.06.2013, 18:45
Допустим есть простой класс:
package
{
public class Klass extends MovieClip
{
import flash.display.*;

public function Klass()
{
}
}

}
В первом кадре написано:
var k1:Klass = new Klass();
addChild(k1);
Возможно ли как-то из класса Klass узнать имя экземпляра этого класса ( k1 ).
Заранее спасибо.

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

maincode
11.06.2013, 19:58
Если очень надо, то можно как нибудь так:

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;}
}

}


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

Psycho Tiger
11.06.2013, 20:20
Если очень надо, то можно как нибудь так:

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;}
}

}


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

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

Chelovek
12.06.2013, 11:46
Если сделать так:

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;
}
}
}

var k1:Klass = new Klass('k1');
addChild(k1);
trace(k1.name1);
То флеш выдаёт ошибку:
Монтажный кадр 1, слой "Actions", кадр 1, строка 4 1136: Неправильное количество аргументов. Ожидается 0.

etc
12.06.2013, 15:55
Жалуется на 4 строку, которой вообще нет.