0

AS3コンパイラエラー1119の原因を、次のようなコードに絞り込みました。

var test_inst:Number = 2.953;
trace(test_inst);
trace(test_inst.constructor);

「1119:静的タイプNumberの参照を介した未定義のプロパティコンストラクターへのアクセス」というエラーが発生します。

ここで、変数の型を省略しても、そのエラーは発生しません。

var test_inst = 2.953;
trace(test_inst);
trace(test_inst.constructor);

期待される出力を生成します。

2.953
[class Number]

それで、取引は何ですか?変数を明示的に入力するのが好きなので、変数の型を指定しない以外にこのエラーを解決する方法はありますか?

4

3 に答える 3

3

わかりました、これを説明するのは少し難しいです...まず第一に、これがどのように機能するかです:

var test_inst:Number = 2.953;
trace(test_inst);
trace((test_inst as Object).constructor);

constructor私の理解では、これは、プロパティがActionScript 3のECMAScriptの性質に由来するという事実に由来します。これはインスタンスのECMAScriptプロパティであり、プロトタイプObjectを介して継承されます。したがって、厳密に型指定されたActionScript 3の世界(これも異なる継承メカニズムを使用します)からは、このプロパティは使用できません。

greetz
back2dos

于 2010-05-11T16:03:54.487 に答える
0

http://www.kirupa.com/forum/showpost.php?p=1951137&postcount=214

それはあなたが必要とするすべての情報を持っています:)

基本的に、trace(test_inst ["constructor"])は機能します。

于 2010-05-11T16:02:54.770 に答える
0

Object(someobject).constructorは同じことを実現します。コンパイラの問題に対処する必要はありません。

Object(someinst)===someclassも同様に機能します。

dh

于 2010-05-11T21:57:03.300 に答える