0

MovieClip のインスタンス名を char に設定しました。このコードをコンパイルしようとすると、次の 2 つのエラーが発生します。

package com.game
{

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


public class game extends MovieClip
{
    var gravity = 0.8;
    var velocity = 0;
    char.addEventListener(Event.ENTER_FRAME,isHitted);

    function isHitted(event:Event):void
    {
        if (char.hitTestObject(level1))
        {
            velocity++;
            char.y -= gravity+velocity;
        }
        else
        {

        }
    }

エラー:

.../game.as, Line 13    1120: Access of undefined property char.
../game.as, Line 13 1120: Access of undefined property isHitted.
4

2 に答える 2

2

まず、このクラス定義は、参照しているインスタンスの定義のようです。そうであれば、「char」の代わりに「this」を使用する必要があります

また、通常、次のようなメソッド呼び出しは指定しません。

char.addEventListener(Event.ENTER_FRAME,isHitted);

クラス宣言時のメソッド外。代わりに、そのコード行は、コンストラクターまたは MovieClip のインスタンス化中に呼び出されるメソッド内に存在する必要があります。

于 2012-12-23T01:33:41.040 に答える
0

'char' を使用する前に、'game' からアクセスできるようにする必要があります。

1 つの方法は、'game' をインスタンス化するときにパラメーターとして 'char' を渡すことです。

これを行う 2 つの方法は、AS3 でコンポジションを使用する場合の呼び出し元オブジェクトへのアクセスの @lee-burrows の回答で説明されています。

于 2012-12-23T09:05:07.673 に答える