我在访问不同包中的属性时遇到问题。 我无法从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。
答案 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
}
}
}