2

私はカスタム 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 で。そうは言っても、別のマシンで同じエラーが発生するという事実は、それが本質的なものであると私に信じさせます...

4

0 に答える 0