0

Flash CS6 を使用していますが、継承された定義に固執しています。

次のような Button という名前のクラスがあるとします。

public class Button extends MovieClip
{
    public var _text : TextField;
}

ライブラリでムービークリップ シンボルを作成し、アクション スクリプトにエクスポートして、「クラス」を「ButtonSkinned」に、「基本クラス」を「ボタン」に設定します。この MovieClip シンボル内に、ステージ上に「_text」という名前のテキスト フィールドを配置しました。

カスタマイズした MovieClip を定義してスキニングを行うのは従来の方法ですよね?

問題は次のとおりです。

クラス「ボタン」をクラスパスに追加して使用すると、すべて問題ありません。

このクラスを SWC ファイルにプリコンパイルし、それを外部ライブラリとして追加するとします。SWF をエクスポートしているときに、Flash CS6 で次のエラーがスローされます。

Symbol 'ButtonSkinned' A conflict exists with inherited definition MyPackage:Button._text in namespace public.

もちろん、「ステージインスタンスを自動的に宣言する」を無効にしました。このエラーを取り除く方法がわかりません。これについての解決策はありますか?

4

2 に答える 2

0

ここで同じケースと散歩を見つけました:http://forums.adobe.com/thread/198821

歩き回るための鍵は、Flash による自動生成ではなく、クラス コードに関連付けられたビジュアル シンボルを手動で記述することです。JSFL スクリプトを使用してクラス コードを自動記述しやすくすることは、非常に役立ちます。

于 2013-04-18T06:21:22.480 に答える
0

非動的クラスをパブリック変数で拡張する場合、それらを再宣言する必要はありません。この場合、そのような変数を再定義することさえできません。「保護」変数と「公開」変数は、スーパークラスとサブクラスの両方で使用できます。つまり、クラスで宣言public var _textしないでください。定義で十分です。ButtonSkinnedButton

于 2013-04-17T11:37:35.520 に答える