Class 静态/全局变量问题

Class 静态/全局变量问题,class,actionscript,static,global-variables,syntax-error,Class,Actionscript,Static,Global Variables,Syntax Error,我想访问girl2.as中的skill1变量,但它不起作用。 错误显示为: 1119:通过带有静态类型图标的引用访问可能未定义的属性skill1。chars:girl2 //main.fla var skill1 = addChild(girl2.skill1); 我试过在夏塞尔,它起作用了 //girl2.as package Icons.chars { import flash.display.Loader; import flash.displa

我想访问girl2.as中的skill1变量,但它不起作用。
错误显示为:
1119:通过带有静态类型图标的引用访问可能未定义的属性skill1。chars:girl2

    //main.fla
    var skill1 = addChild(girl2.skill1);
我试过在夏塞尔,它起作用了

    //girl2.as
    package Icons.chars
    {

import flash.display.Loader;
import flash.display.MovieClip;
import flash.net.URLRequest;

    public class girl2 extends charsel {

public static var skill1:Loader, url1:URLRequest;

public function girl2 () {
    skill1 = new Loader();
    url1 = new URLRequest("skills/nami/skill4.png")
        skill1.load(url1);

我试图访问player1,但它成功了。

我不确定在这种情况下为什么要使用静态修改器。请注意,尽管您已将skill1声明为静态,但它实际上只有在您创建girl2类的实例时才可用—就像您在构造函数中创建它一样(还请注意,您应该使用大写字母命名类,因此这应该是girl2)

因此,我要么删除公共变量的所有静态修饰符,要么,如果有任何具体原因,使用静态初始化器实例化skill1变量:

//charsel.as
package Icons.chars
{

import flash.geom.Point;
import flash.display.*;
import flash.events.MouseEvent;

public class charsel extends MovieClip {

protected var originalPosition:Point;
public static var player1:MovieClip, player2:MovieClip, player3:MovieClip;

我照你说的做了,1119:通过引用静态类型图标访问可能未定义的属性skill1。chars:girl2。
public class girl2 extends charsel {

public static var skill1:Loader, url1:URLRequest;

{
skill1 = new Loader();
skill1.addEventListener(...); // event handlers should be static as well
skill1.load(...);
}

public function girl2 () {