/**
* Copyright tkinjo ( http://wonderfl.net/user/tkinjo )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/wxEK
*/
package
{
import flash.display.Sprite;
import flash.text.TextField;
/**
* スーパークラスからサブクラスの定数を取得する
*
* this["constructor"].定数名 or constructor.定数名
*
* @author tkinjo
*/
public class Main extends Sprite
{
public function Main()
{
var textField:TextField = new TextField();
addChild( textField );
var a:A = new A();
var b:B = new B();
textField.appendText( "a.name = " + a.name + "\n" );
textField.appendText( "b.name = " + b.name );
}
}
}
class A
{
public static const NAME:String = "A";
public var name:String;
public function A()
{
// B に定数が宣言されていない場合は undefined が返される。
name = this["constructor"].NAME;
//name = ( this as Object ).constructor; // これでもいい。
//name = constructor.NAME; // 「未定義のプロパティ constructor へのアクセスです。」と出てコンパイルできない。
}
}
class B extends A
{
public static const NAME:String = "B";
}