从 child/inside movieclip AS3 访问父 movieclip class 变量
access parent movieclip class variable from child/inside movieclip AS3
Maze Runner MovieClip 有一个 "AS Linkage" class MazeRunner
迷宫奔跑者class
public class MazeRunner extends MovieClip
{
public var _startCave :String;
public function MazeRunner():void
{
}
}
和 movieclip (Maze Runner>mc_terrain) 想要从 "MazeRunner" class 访问 _startCave 以便在 "mc_terrain" 时间线中使用。
可以吗?
我尝试使用 var mr:MazeRunner = new MazeRunner(); - 但这是一个错误,因为我认为您无法访问自己的 class/movieclip?
如果 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 属性 更改为静态:
public static var _startCave :String;
这将允许您使用静态引用从任何地方修改和读取它:
MazeRunner._startCave = "1";
trace(MazeRunner._startCave);
但通常不推荐这样做,因为如果 MazeRunner 碰巧有几个需要不同 _startCave 的实例,它可能会导致问题。
Maze Runner MovieClip 有一个 "AS Linkage" class MazeRunner
迷宫奔跑者class
public class MazeRunner extends MovieClip
{
public var _startCave :String;
public function MazeRunner():void
{
}
}
和 movieclip (Maze Runner>mc_terrain) 想要从 "MazeRunner" class 访问 _startCave 以便在 "mc_terrain" 时间线中使用。 可以吗?
我尝试使用 var mr:MazeRunner = new MazeRunner(); - 但这是一个错误,因为我认为您无法访问自己的 class/movieclip?
如果 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 属性 更改为静态:
public static var _startCave :String;
这将允许您使用静态引用从任何地方修改和读取它:
MazeRunner._startCave = "1";
trace(MazeRunner._startCave);
但通常不推荐这样做,因为如果 MazeRunner 碰巧有几个需要不同 _startCave 的实例,它可能会导致问题。