//main.fla
var skill1 = addChild(girl2.skill1);
我想访问girl2.as中的skill1 var,但它没有用。
显示错误:
1119:通过静态类型Icons.chars: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);
我在charsel.as中尝试了它并且有效
//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;
我试图访问player1并且它有效。
答案 0 :(得分:0)
我不确定为什么在这种情况下你想要使用静态修饰符。注意,即使你已经将skill1声明为静态,它实际上只有在你创建一个girl2类的实例时才可用 - 当你在构造函数中创建它时(另请注意,你应该用大写字母命名你的类,所以这应该是Girl2)。
因此,我要删除公共变量的所有静态修饰符,或者,如果有任何特定原因,请使用静态初始化器来实例化skill1变量:
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 () {