0

私は、Lynda tut をたどったドラッグ アンド ドロップ ゲームを作成しています。私が作成したゲームでエラーが発生し続けたのは、私が従ったチュートリアルがフレーム 1 ですべてを行ったのに、私が作成した私のゲームはフレーム 3 から開始します。したがって、フレーム 1 からゲームを開始すると、完全に機能し、次のエラーは発生しません。

これは、映画をテストしたときに発生し、[続行] をクリックすると、映画を見ることができます -

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at simpleSpring()[simpleSpring.as:21]

そして、これはオブジェクトをドラッグすると発生します -

TypeError: Error #2007: Parameter hitTestObject must be non-null.
    at flash.display::DisplayObject/_hitTest()
    at flash.display::DisplayObject/hitTestObject()
    at DragDrop/drop()[DragDrop.as:33]

フレーム 1 でゲームを開始しない限り、これらのエラーは表示されないことがわかっているので、最初のフレームを過ぎたフレームでゲームを開始できるように配置できるコードを知りたいです。

以下は DragDrop.as のコードです。

    package 
{
    import flash.display.*;
    import flash.events.*;

    public class DragDrop extends Sprite
    {
        var origX:Number;
        var origY:Number;
        var target:DisplayObject;

        public function DragDrop()
        {
            // constructor code
            origX = x;
            origY = y;
            addEventListener(MouseEvent.MOUSE_DOWN, drag);
            buttonMode = true;
        }

        function drag(evt:MouseEvent):void
        {
            stage.addEventListener(MouseEvent.MOUSE_UP, drop);
            startDrag();
            parent.addChild(this);
        }

        function drop(evt:MouseEvent):void
        {
            stage.removeEventListener(MouseEvent.MOUSE_UP, drop);
            stopDrag();

            if(hitTestObject(target))
            {
                visible = false;
                target.alpha = 1;
                Object(parent).match();
            }

            x = origX;
            y = origY;
        }

    }

}

そして、ここに simpleSpring.as があります

package 
{

    import flash.display.*;
    import flash.events.*;


    public class simpleSpring extends MovieClip
    {
         var dragdrops:Array;


        public function simpleSpring()
        {
            // constructor code
            dragdrops = [ladyone,ladytwo,ladythree,ladyfour,ladyfive,ladysix];
            var currentObject:DragDrop;
            for(var i:uint = 0; i < dragdrops.length; i++)
            {
                currentObject = dragdrops[i];
                currentObject.target = getChildByName(currentObject.name + "_target");


            }
        }

        public function match():void
        {

        }
    }

}

ゲーム ドキュメントのアクション レイヤーにコードを追加しようとしましたが、これも正しく機能していないようです。

4

1 に答える 1

0

物を出版することに関しては、私はとても初心者です。Android 向けに公開するときに、複数の swf ファイルを追加できることに気付きました。これにより、最初のフレームでコーディングできないという問題が解決されます。このゲームを別のフラッシュ ファイルとして同じフォルダーに保存し、タイトル ムービーが actionscript で呼び出している場合、コードは機能し、すべてを 1 つのファイルとして公開できます。これを理解するのを手伝ってくれた人たちにもう一度感謝します!

于 2013-08-08T15:37:21.417 に答える