2

ここに画像の説明を入力こんにちは、フラッシュ開発に比較的慣れていないので、ユーザー入力の保存について簡単な質問があります。ユーザーが別のオブジェクトに直面するまでキャラクターをナビゲートする迷路シーンがあります。キャラクターがオブジェクトにぶつかると、新しいシーンが開かれ、ユーザーに問題の解決策を選択するよう促します。ユーザーが正しい答えをクリックすると、迷路に戻ることを示すボックスが表示されますが、クリックして迷路に戻ると、キャラクターは元の位置に戻ります。オブジェクトと衝突した時点で、オブジェクトは消え、キャラクターは同じコースで再開できます。これを読んでくれてありがとう、それが理にかなっていて、誰かが私に解決策を持っていることを願っています.

編集:最初に、スターの束の担当者に感謝します。次に、フラッシュでシーンを使用することは非常にくだらない練習であり、時代遅れであることを知っていますが、それは私が何年も前に学んだ方法であり、フラッシュ自体が時代遅れになると見なされますすぐに、スプライトやフレームを使用した別のアプローチを学びたいとは思っていません。答えてくれてありがとう!

編集: 黒い四角形が衝突したら、シーンから赤い四角形を削除したい。また、そうすると次のフレームに移動します。これが私のコードです。

 addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);
 function fl_EnterFrameHandler (event:Event):void
    {
        if (player.hitTestObject(Risk))
        {
            removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);
            removeChild(Risk);
            nextFrame();                
        }
    }
4

2 に答える 2

2

を忘れることをお勧めしますScenes。それらは古く、バグがあり、コードに多くの問題をもたらし、一般的に悪い習慣です!! だから、あなたがただ学んでいるなら、 !!AS3で学ばないでください。代わりにまたはをScenes使用してください。必要に応じて追加および削除するだけです。MovieClipsSprites

編集:あなたの編集へ;)

Flash自体がすぐに時代遅れになると見られている

それは単なる虚偽であり、広まっている誤った情報です。MultiPlattform ゲーム開発のような新しい目的があります。しかし、それはまったく別の議論です。

x、y座標を保存してから復元することで、これを解決できます。しかし、私はあなたに約束します。

保存されたポイントと時間のように。プレーヤーをオブジェクト (最後の位置) に配置すると、質問シーンが再びトリガーされますか。答えを保存するなど... DisplayObjects に変更すると、最終的に時間を節約できます。ただ言って ;)

EDIT2:

コメント内のコードは次のようになります。

function fl_EnterFrameHandler (event:Event):void
        {
            if (player.hitTestObject(Risk))
            {
                removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);//remove to prevent errors if it fires again and there is no Object to hitTest
                removeChild(Risk);// do what needs to be done on this frame
                nextFrame();// and then move to the next                
            }
        }

そして、正しい慣習に従って、これを読んでみんなの生活を楽にすると、次のようになります!

function fl_EnterFrameHandler (event:Event):void
        {
            if (player.hitTestObject(risk))
            {
                removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);//remove to prevent errors if it fires again and there is no Onject to hitTest
                removeChild (risk);
                nextFrame ();

            }
        }

私はおそらく今あなたを混乱させています、ただ一番上のものを使ってください;)

EDIT3: わかり ました、ちょうど肉屋がありました。これですべてが 1 つのフレームに収まりました。私はクラスの方が好きだったでしょうが、それはあなたを混乱させるだけです.

新しい質問を追加するには、ライブラリで質問ムービークリップを複製してテキストを変更し、インスタンス名を同じままにしておけば、コードはそのまま機能します! ダウンロード

于 2013-02-27T13:21:58.147 に答える
0

それは確かに可能です。文字の属性 (現在の位置など) を変数に格納します。その後、ゲームに戻ったら、この変数を使用してキャラクターの開始位置を設定します。

シーンはあなたが取るべき理想的なルートではないことに同意します. 優れた AS3 の本を読むと、長い目で見れば時間/日/週の節約になるでしょう。

于 2013-02-27T13:40:17.030 に答える