Maze Runner MovieClip有一个“AS Linkage”类MazeRunner
MazeRunner课程
public class MazeRunner extends MovieClip
{
public var _startCave :String;
public function MazeRunner():void
{
}
}
和movieclip(Maze Runner> mc_terrain)想要从“MazeRunner”类访问_startCave以在“mc_terrain”时间轴中使用。 可以吗?
我尝试使用var mr:MazeRunner = new MazeRunner(); - 但这是一个错误,因为我认为你无法访问自己的类/ movieclip?
答案 0 :(得分:1)
如果Maze_Runner是DisplayObjectContainer,mc_terrain是通过addChild附加到Mazerunner的DisplayObject:
var mr:MazeRunner = new MazeRunner(); // you have to have an instance of MazeRunner to run it, anyway
var mt:Terrain = new Terrain();
mr.addChilld(mt);
然后你可以使用
(mc_terrain.parent as MazeRunner)._startCave
访问它。
如果它们没有以这种方式附加,那么你需要在mc_terrain中引用MazeRunner(你需要一个新的属性):
var mr:MazeRunner = newMazeRunner;
mr.mc_terrain.maze_runner = mr;
// ...access:
trace(mc_terrain.maze_runner._startCave);
最后,如果您始终只有一个MazeRunner的活动实例,则可以将其_startCave属性更改为static:
public static var _startCave :String;
这将允许您使用静态参考从任何地方修改和阅读它:
MazeRunner._startCave = "1";
trace(MazeRunner._startCave);
但通常不建议这样做,因为如果MazeRunner碰巧有几个需要不同的_startCave的实例,可能会导致问题。