0

actionscript に型指定されたクラスがあります。

public class Cat {
    public var id:int;
    public var name:String;
}

mxml コンポーネントでインスタンス変数を使用しています。

<valueobjects:Cat id="selected_cat"/>

IntelliJ では、エラーなしでコンパイルされますが、cat の id が「無効な整数値」というエラーとして表示されます。このエラーは、ファイルの編集時に IDE に表示され、下部にエラーとしてリストされます。このクラスまたはプロパティについてIntelliJに伝えるためのトリックを知っている人はいますか? または、mxml パーサーが満足するように、属性を識別するためのメタデータ タグはありますか?

ありがとうございます。

4

2 に答える 2

0

はい、問題は、通常、idが文字列型のIDを設定するためにマークアップで使用される文字列であるということです。Flexは、UIComponentまたはIMXMLObjectを介してそれをサポートします。クラスがIMXMLObjectを実装していない限り、マークアップでValueObjectsを使用しないでください。

于 2012-06-07T17:55:23.507 に答える
0

マークアップで非ビジュアル オブジェクトを宣言するには、Flex 4 以降で fx:declarations タグを使用する必要があります。

各 mxml タグの id プロパティ (視覚的かどうかにかかわらず) は、コードの残りの部分からこのオブジェクトを参照する方法として機能します。

つまり、これに相当するマークアップです。

var selected_car:車

したがって、id は常に String プロパティでなければなりません。

あなたのクラスでは、id を int プロパティとして宣言します。これは、コンパイラがどちらが有効か分からないため、混乱を招きます。

クラスを変更せずに作業する必要がある場合は、MXML ではなく AS を使用してインスタンスを作成する必要があります。mxml を使用する必要がある場合 (バインドを有効にするなど)、プロパティ名をおそらく catID などに変更する必要があります。

于 2012-07-01T10:52:03.207 に答える