0

未定義のプロパティへのアクセスに関連する 10 個のエラー (1120) が発生しています。onEnterFrame、onClick、onLeftClick、MouseUp、onUpClick、MouseUp、onDownClick、MouseUp、onRightClick、および MouseUp。

エラーは、58 行目から 73 行目までの .addEventListener からスローされています。

package 
{
    import flash.display.MovieClip;
    import flash.events.KeyboardEvent;
    import flash.ui.Keyboard;
    import flash.events.Event;
    import flash.events.MouseEvent;


    public class FrogKatta extends MovieClip
    {
        // Create instances of library symbols 
        var car1:Car = new Car();
        var car2:Car = new Car();
        var truck1:Truck = new Truck();
        var truck2:Truck = new Truck();
        var frog:Frog = new Frog();
        var FinishLine:finishLine = new finishLine();
        var HealthBar:healthBar = new healthBar();
        var vx:int = 0;
        var vy:int = 0;

        var hit:Boolean = false;
        var carStart:Boolean = false;
        var truckStart:Boolean = false;



        public function frogKatta()
        {
            frog.x = 230;
            frog.y = 375;

            truck1.x = 545;
            truck1.y = 230;

            truck2.x = 560;
            truck2.y = 235;

            car1.x = 550;
            car1.y = 78;

            car2.x = 560;
            car2.y = 80;

            // add created instances to stage 
            addChild(frog);
            addChild(truck1);
            addChild(truck2);
            addChild(car1);
            addChild(car2);
            // * PROBLEM WITH STAGE.ADDEVENTLISTENER
            // Add event listener for keyboard 

// PROBLEM STARTS HERE ***********


            stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
            stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);


            addEventListener(Event.ENTER_FRAME, onEnterFrame);

            // Add Event for mouse click 
            stage.addEventListener(MouseEvent.CLICK, onClick);
            // creating instance of onClick from the MouseEvent.CLICK
            //Keyboard 
            left.addEventListener(MouseEvent.MOUSE_DOWN, onLeftClick);
            // to move
            left.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
            // to stop 
            up.addEventListener(MouseEvent.MOUSE_DOWN, onUpClick);
            up.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
            down.addEventListener(MouseEvent.MOUSE_DOWN, onDownClick);
            down.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
            right.addEventListener(MouseEvent.MOUSE_DOWN, onRightClick);
            right.addEventListener(MouseEvent.MOUSE_UP, MouseUp);

//  PROBLEM ENDS HERE****


            // Keyboard functionality 
            function onKeyDown(event:KeyboardEvent):void
            {
                if (event.keyCode == Keyboard.LEFT)
                {
                    vx = -5;
                    frog.play();
                }
                else if (event.keyCode == Keyboard.RIGHT)
                {
                    vx = 5;
                    frog.play();
                }
                else if (event.keyCode == Keyboard.DOWN)
                {
                    vy = 5;
                    frog.play();
                }
                else if (event.keyCode == Keyboard.UP)
                {
                    vy = -5;
                    frog.play();
                }
            }

            // Keyboard again to stop 
            function onKeyUp(event:KeyboardEvent):void
            {
                if (event.keyCode == Keyboard.LEFT || event.keyCode == Keyboard.RIGHT)
                {
                    vx = 0;
                    frog.stop();
                }
                else if (event.keyCode == Keyboard.DOWN || event.keyCode == Keyboard.UP)
                {
                    vy = 0;
                    frog.stop();
                }

                // Clicking Functionality
                function MouseUp(event:MouseEvent):void
                {
                    vy = 0;
                    vx = 0;
                    frog.stop();
                }
                // on"librarybutton name left" Click
                function onLeftClick(event:MouseEvent):void
                {
                    vx = -5;
                    frog.play();
                }
                function onUpClick(event:MouseEvent):void
                {
                    vy = -5;
                    frog.play();
                }
                function onDownClick(event:MouseEvent):void
                {
                    vy = 5;
                    frog.play();
                }
                function onRightClick(event:MouseEvent):void
                {
                    vx = 5;
                    frog.play();
                }


                // on enter frame 
                function onEnterFrame(event:Event):void
                {
                    frog.x +=  vx;
                    frog.y +=  vy;

                    truck1.x +=  -10;
                    car1.x +=  -20;


                    //Car1 & 2 SCREEN WRAPPING 
                    if (car1.x <= -400)
                    {
                        car1.x = 550;
                    }
                    // If car 1 leaves screen add car to other side of the screen

                    if (car2.x <= -400)
                    {
                        car2.x = 550;
                    }

                    if (car1.x <= 135)
                    {
                        carStart = true;
                    }
                    // Screen wrap so if car is less than or equal to 135 in distance add another car 

                    if (carStart)
                    {
                        car2.x +=  -15;
                    }

                    //Truck1 & 2 
                    if (truck1.x <= -400)
                    {
                        truck1.x = 550;
                    }

                    if (truck2.x <= -400)
                    {
                        truck2.x = 550;
                    }


                    if (truck1.x <= 135)
                    {
                        truckStart = true;

                    }

                    if (truckStart)
                    {
                        truck2.x +=  -10;

                    }
                    if (frog.hitTestObject(truck1) || frog.hitTestObject(truck2) || frog.hitTestObject(car1) || frog.hitTestObject(car2))
                    {
                        frog.y +=  10;
                        hit = true;

                    }
                    if (hit)
                    {
                        if (HealthBar.width < 10)
                        {
                            HealthBar.width = 0;
                        }
                        else
                        {
                            HealthBar.width -=  10;
                        }
                    }

                    if (HealthBar.width < 1)
                    {
                        //S.O.P you lose);
                    }




                    if (frog.hitTestObject(FinishLine))
                    {

                        removeChild(frog);
                        removeChild(FinishLine);
                        removeChild(car1);
                        removeChild(car2);
                        removeChild(truck1);
                        removeChild(truck2);
                        // addchild of you winning

                    }

                }
            }

        }
    }
}
4

1 に答える 1

0

あなたは括弧の問題を抱えていると思います。

onKeyDown 関数の直前に「}」が必要です。

すべてのブラケットを確認してください。私が言った場所にブラケットを挿入した後、ファイルの最後に余分なブラケットがある可能性もあります。

コードに上下左右が存在しないため、これらの行は問題です。それらがステージ インスタンスである場合、名前が付けられていない可能性が高いため、コードでそれらを使用することはできません。その場合は、プロパティ パネルからインスタンスに名前を付けます。

    left.addEventListener(MouseEvent.MOUSE_DOWN, onLeftClick);
    // to move
    left.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
    // to stop 
    up.addEventListener(MouseEvent.MOUSE_DOWN, onUpClick);
    up.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
    down.addEventListener(MouseEvent.MOUSE_DOWN, onDownClick);
    down.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
    right.addEventListener(MouseEvent.MOUSE_DOWN, onRightClick);
    right.addEventListener(MouseEvent.MOUSE_UP, MouseUp);

onKeyUp 関数を閉じないという別のブラケットの問題もあります。

これにより、すべてのイベント ハンドラーがその関数内にあると見なされます。

しかし、私のコメントで述べたように、これは実際にはアプリケーション フォーラムのデバッグではありません。

私が要求したように、あなたのブラケットを確認するために時間をかけてください. 問題であることが判明したものをチェックするために時間を割いていない場合、誰かの時間に対してあまり感謝していません。各関数のすべての括弧を確認する時間をとってください。そうすれば、多くの時間を節約できます。

于 2013-04-06T17:35:15.170 に答える