类中的Actionscript 3实例名称不起作用

时间:2012-12-23 01:04:57

标签: actionscript-3 flash

我已将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.

2 个答案:

答案 0 :(得分:2)

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

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

char.addEventListener(Event.ENTER_FRAME,isHitted);
声明类时的方法之外的

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

答案 1 :(得分:0)

你需要在'游戏'之前使用'char'才能使用它。

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

Access caller object when using composition in AS3

中@ lee-burrows的回答中描述了两种方法。