0

whiledを検​​索しましたが、スタックで答えを見つけることができなかったので、誰かが私を助けてくれることを願っています.

Flash prof CS6 と Flashbuilder を試してみました。Flash で square_mc という名前のムービークリップを作成し、square という名前でインスタンス化しました。

Main.as というクラス ファイルを FLash ビルダーにリンクし、Flash ビルダーで次のように記述します。

   package
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class Main extends MovieClip
    {
        public function Main()
    {
            super();

            circle.addEventListener(MouseEvent.CLICK, onToolClick);
    }

    function onToolClick(event:MouseEvent):void{
        trace("klickade på ontoolclick");
        }

    }
}

Flashビルダーで「未定義のプロパティサークルへのアクセス」という警告が表示されますが、実行すると魅力的に機能します。

Flashbuilder は、Flash で circle という名前で既にインスタンス化されていることを認識していないため、警告が表示されると推測しています。

Flashbuilder がそこにあり、機能していることを理解させる方法はありますか?

4

1 に答える 1

0

オプション 1: これを解決するには、通常、Flash CS6 の ActionScript 設定 ([ファイル] > [ActionScript 設定]) で [ステージ インスタンスを自動的に宣言] のチェックを外します。次に、Flash Builder で、Flash CS6 のステージにある MovieClip を次のように宣言します。

package
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class Main extends MovieClip
    {
        public var circle:MovieClip; // manually declare circle

        public function Main()
    {
            super();

            circle.addEventListener(MouseEvent.CLICK, onToolClick);
    }

    function onToolClick(event:MouseEvent):void{
        trace("klickade på ontoolclick");
        }

    }
}

オプション 2: ステージ上のすべてのムービーを手動で宣言したくない場合、オプション 2 は、Flash Builder の別の変数として circle への参照を作成することです。

package
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class Main extends MovieClip
    {
        private var _circle:MovieClip;

        public function Main()
    {
            super();
            _circle = this.getChildByName( "circle" ) as MovieClip;
            _circle.addEventListener(MouseEvent.CLICK, onToolClick);
    }

    function onToolClick(event:MouseEvent):void{
        trace("klickade på ontoolclick");
        }

    }
}

これにより、Flash Builder がエラー メッセージを表示しなくなります :)

于 2013-04-21T15:05:15.730 に答える