AS3 - 错误1119 - 完全没有检测到我的静态类

时间:2014-04-15 17:10:57

标签: actionscript-3 flash static-members

背景:我一周前开始学习AS3。我的所有文件都在同一个文件夹中,并且路径设置为.(默认情况下仍为默认值),因此所有类都应在逻辑上相互检测。但事实证明,我有一个有很多public static var的课,每次我在其他课上调用这些课时,我都会得到错误1119

Access of possibly undefined property isKeyJump through a reference with static type Function.

具有静态变量的类称为Cont,用于' Control&#39 ;;它主要用于检查按下了哪些键,按下,或快速按两次。我让这个课基本上组织了代码。

我声明我的所有变量:

public static var isKeyRight:Boolean = false;

如果那不够明确,我甚至在构造函数中写了这个(我累了):

public function Cont()
    {
        Cont.isKeyRight = false;
        ... }

但这根本没有解决问题。似乎问题独立于阶级本身;它的只是我的另一个类没有检测到Cont

我尝试了import Cont;,但这也没有改变。我的44行Error 1119看起来像这样:

if (standing && Cont.isKeyJump) vacc = _jumpAcc;

我甚至确保在我的其他类之前实例化Cont的实例,以确保定义至少在那里。但是,如果这是问题,那可能会在编译后出错,而不是在。

期间

批量:

其他类:(有44个错误的那个)

package {

import flash.display.MovieClip;
import flash.events.Event;

public class PersonnagePrincipal extends Physical {

    //INITIALISATION
    ...

    //CONSTRUCTOR
    public function PersonnagePrincipal(life:Number = 100, focus:Number = 100, lifeMax:Number = 100, focusMax:Number = 100)
    {
        super();
        ...
    }

    // GET & SET
    public function set life(life:Number):void {    _life = (life > lifeMax) ? lifeMax : life;  }
    ...


    // UPDATE
    override public function update(event:Event)
    {
        move_physical();

        if (standing && Cont.isKeyJump) vacc = _jumpAcc;
        ...

和续:

package {

import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.MovieClip;
import flash.utils.*;

public class Cont extends MovieClip
{
    // Key codes
    public static var isKeyRight:Boolean;
    public static var isKeyJump:Boolean;
    ...

    //CONSTRUCTOR
    public function Cont()
    {
        Cont.isKeyRight = false;
        Cont.isKeyJump = false;
        ...

        if (stage) { init(); } 
        else { this.addEventListener(Event.ADDED_TO_STAGE, init); }
    }

    //POST-CONSTRUCTOR
    private function init(e:Event=null)
    {
        this.removeEventListener(Event.ADDED_TO_STAGE, init);
        ...
    }

编辑:好吧,从Cont获取所有代码并进入PersonnagePrincipal确实解决了synthax错误(假设我摆脱了Cont.)......但现在我的代码不那么性感和灵活。

编辑2:我让班级PersonnagePrincipal为空,它有效。更奇怪的是,当我将行public var control:Cont = new Control放在Main中时,它会起作用,同时它会在PersonnagePrincipal中生成编译时错误。什么?

0 个答案:

没有答案