AS3 - 不同包中类的访问属性

时间:2015-11-28 20:07:15

标签: actionscript-3 flash

我在访问不同包中的属性时遇到问题。 我无法从FloorTile类访问Assets类的任何属性。如何从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

    }

}

FloorTile:

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。

1 个答案:

答案 0 :(得分:0)

问题发生的原因是您尝试将变量 floorTimeData 作为静态变量访问,但它是一个实例变量。所以,你必须考虑它应该是什么,并为你的方法做出必要的改变。

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

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
        }
    }
}