AS3 - 访问不同包中的 属性 of Class

AS3 - Access Property of Class in different package

我在访问不同包的属性时遇到问题。 我无法从 FloorTile Class 访问资产 class 的任何属性。如何从 Assets 获取 floorTileData?

资产:

package src.gfx{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;

    public class Assets{
        public var floorTileData:BitmapData = new BitmapData(0, 0); 

        //Other Code

    }

}

地砖:

package src.tilespack{
import src.gfx.Assets;

    public class FloorTile extends Tile{

        public function FloorTile(ID:int){
            super(Assets.floorTileData, ID); //Error in this line
        }
    }
}

错误是由于这一行

super(Assets.floorTileData, ID);

我收到错误 - 1119:通过静态类型 Class.

的引用访问可能未定义的 属性 floorTileData

问题的发生是因为您试图将变量 floorTimeData 作为静态变量访问,但它是一个实例变量。因此,您必须考虑它应该是什么,并对您的方法进行必要的更改。

1)应该是静态变量(请注意关键字static):

package src.gfx
{
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.geom.Rectangle;
    import flash.geom.Point;

    public class Assets
    {
        public static var floorTileData:BitmapData = new BitmapData(0, 0); 
    }
}

2) 应该是实例变量:

package src.tilespack
{
    import src.gfx.Assets;

    public class FloorTile extends Tile
    {
        public function FloorTile(ID:int)
        {
            var tempAssets:Assets = new Assets();
            super(tempAssets.floorTileData, ID); //Error in this line
        }
    }
}