私はカスタム Datagrid コンポーネントを構築しており、3 つのパラメーター プロパティがありました。
[Collection] _columns
[Inspectable] _headerHeight
[Inspectable] _rowHeight
これはすべてうまくコンパイルされましたが、_columns
変数に関することを変更する必要があり_columnData
ましたDataProvider
.
Flash Professional IDE のパラメーター リストにプロパティをリストしているにもかかわらず、プロパティを作成できないと言ってTest MovieReferenceError
を試行するたびにスローされます。columnData
私が想像できる唯一のことは、Flash が私のクラスの以前のバージョンをどういうわけかキャッシュしているということですが、コンポーネントを再構築すると、Flash IDE は私のメタデータに従って正しく更新されているということです。からすべてのものを消去し~/Library/Application Support/Adobe/Flash CS5/CodeModel
、Flash を再起動し、ASO ファイルを削除し、すべてのファイルを新しいマシンに移動し、新しい FLA で (同じクラスを使用して) コンポーネントをゼロから構築しました - 何も機能しませんでした。 .
エラーの原因となっているコードを以下にコピーします。
private var _columnData:Object;
private var _headerHeight:Number = 40;
private var _rowHeight:Number = 40;
[Collection(collectionClass="musicone.components.data.DataCollection", collectionItem="musicone.components.controls.datagrid.DatagridColumn", identifier="item")]
public function get columnData():Object {
return _columnData;
}
public function set columnData(value:Object):void {
_columnData = value;
var _forceClass:DataCollection = value as DataCollection;
//updateColumns();
draw();
}
[Inspectable(type="Number", defaultValue=40)]
public function get headerHeight():Number {
return _headerHeight;
}
public function set headerHeight(value:Number):void {
_headerHeight = value;
draw();
}
[Inspectable(type="Number", defaultValue=40)]
public function get rowHeight():Number {
return _rowHeight;
}
public function set rowHeight(value:Number):void {
_rowHeight = value;
draw();
}
編集: コードがどこかにキャッシュされていると考えている主な理由の 1 つは、draw() 関数の変更がどこにも表示されていないことです。つまり、変更が有効であることを保証できる唯一の場所はFlash IDE で。そうは言っても、別のマシンで同じエラーが発生するという事実は、それが本質的なものであると私に信じさせます...