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

首先,听起来这个类定义是你所指的实例的定义,如果是,你应该使用'this'而不是'char'

此外,您通常不会指定方法调用,例如:

char.addEventListener(Event.ENTER_FRAME,isHitted);

声明类时在方法之外。相反,该行代码应该存在于构造函数或在 MovieClip 实例化期间调用的方法中。

于 2012-12-23T01:33:41.040 回答
0

您需要先让“游戏”可以访问“字符”,然后才能使用它。

一种方法是在实例化“游戏”时将“字符”作为参数传递。

在 AS3 中使用组合时,Access caller object中@lee-burrows 的回答中描述了两种方法

于 2012-12-23T09:05:07.673 回答