0

ここでは、バブルがゲームの上から下に落ち、プレーヤーが 30 秒間でできるだけ多くのバブルを弾こうとするバブル ポップ ゲームを作成します。3フレームのゲームで、1フレーム目はスタートボタン、2フレーム目はゲーム、3フレーム目はスコアでもう一度プレイ。1 番目のフレーム: 2 番目のフレームに移動するためのボタン 2 番目のフレーム: 再生時間を 30 秒カウントするためのタイマー 3 番目のフレーム: もう一度再生するためのボタン。

ScoreValue は、ゲームの最後のフレームにある動的なテキスト ボックスです。バブルのサイズ スケールに基づいてポイントを記録し、プレイヤーが割ったバブルの量に基づいて変更する必要があります。

scoreValue.text = score.toString();
Error 1120: Access of unidentified property scoreValue

とにかく、ここにコードの完全なパッケージがあります。

    package  {
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.media.Sound;
    import flash.geom.ColorTransform;

    public class Ball extends MovieClip{

        static public var burstCounter: uint;
        private var vx: Number;
        private var vy: Number;
        private var gravity: Number;
        private var stageWidth;
        private var stageHeight;
        private var bubble:Ball = new Ball();
        private var score: uint=0;

        public function Ball() {
            bubble.addEventListener(Event.ADDED_TO_STAGE, initialize)
            bubble.addEventListener(MouseEvent.CLICK, burst)
            bubble.addEventListener(Event.ENTER_FRAME, dropping)
        }

        public function initialize (e:Event):void
        {
            bubble.x = Math.random() * stageWidth;
            bubble.y = 0;

            stageWidth = stage.stageWidth;
            stageHeight = stage.stageHeight;

            bubble.vx = Math.random() * 2 - 1;
            bubble.vy = Math.random() * 2 + 1;
            gravity = 0.1;

            var sizeScale = Math.random() * 1.2 + .6;
            bubble.scaleX = bubble.scaleY = sizeScale;
            score = (10 / sizeScale);
            scoreValue.text = score.toString();

            var colorTran = new ColorTransform();
            colorTran.color = Math.random() * 0xFFFFFF;
            transform.colorTransform = colorTran;
            addChild(bubble);
        }
        function dropping(e: Event) :void
        {
            x += vx;
            y += vy;
            vy += gravity;

            if((x<0) || (x>stageWidth) || (y<0) || (y>stageHeight))
            {
                if(parent != null)
                {
                    parent.removeChild(this);
                }
                removeEventListener(Event.ENTER_FRAME, dropping)
            }
        }
        function burst (e:Event):void
        {
            var ballonPopping: Sound = new BalloonPopping();
            bubble.removeEventListener(Event.ADDED_TO_STAGE, initialize);
            bubble.removeEventListener(Event.ENTER_FRAME, dropping);
            removeChild(bubble);

            ballonPopping.play();

            burstCounter += score;
        }

    }

}

これをプログラムの出力として取得していますが、その理由を知っている人はいますか?

Fonts should be embedded for any text that may be edited at runtime, other than text with the "Use Device Fonts" setting. Use the Text > Font Embedding command to embed fonts.

御時間ありがとうございます。

4

2 に答える 2

1

「MouseEvent の未定義プロパティへのアクセス」を修正するには、MouseEvent クラスをインポートする必要があります。

これを import ステートメントに追加します。

import flash.events.MouseEvent;
于 2012-04-04T16:38:22.050 に答える
0

まず、クラスでは、関数はpublicまたはとして定義する必要がありますprivate。次に、関数に a を割り当てているときにburst関数が期待しています。私がよくやってしまう簡単な間違いです。EventMouseEvent

次のように変更します。

private function burst (e:MouseEvent):void

出力パネルのフォントは、動的テキスト フィールドがどこかにあることを意味します。FLA に移動し、そのテキストフィールドを開き、プロパティ パネルで、埋め込みボタンを押して [基本ラテン語] チェックボックスを選択するか、数字だけの場合は数字を選択します

編集:また、インポートを次のように変更します

import flash.events.*;

または追加

import flash.events.MouseEvent;
于 2012-04-04T16:37:32.513 に答える