私はあなたがこれを行うことができるとは思わない. 最善の方法は、文字列識別子 (クリップが深くネストされている場合はドット区切りのパス全体) を渡し、カスタム コンポーネント内にコードを実装して、そのアイテムを名前で検索することです。
水平および垂直の先行コンポーネントに対して相対的にレイアウトされるカスタム コンポーネントがあるので、次のようにします。
protected var horizontalPredecessor:String = "";
[Inspectable(name = "HorizontalPredecessor", type = String, defaultValue="")]
public function set HorizontalPredecessor($value:String):void
{
horizontalPredecessor = $value;
drawNow();
}
override protected function draw():void
{
if (parent)
{
if (horizontalPredecessor != "")
{
var hp:DisplayObject = parent.getChildByName(horizontalPredecessor);
if (hp)
{
x = hp.y + hp.height + horizontalSpacing;
}
}
}
}
... これらのコンポーネントはすべて同じ親を共有するため、簡単になります。
または、ドアが 1 つしかない場合は、それをシングルトンにして、次のように静的参照を与えることができます。
public class Door
{
private static var _singleton:Door;
public static function get Singleton():Door
{
if(!_door) _door = new Door();
return _door;
}
}
その後、ハンドルは参照するだけDoor.Singleton
で、何も渡すことを心配する必要はありません。または、Door クラスにドアの静的配列を持ち、ハンドルにインデックス番号を付けて特定のドアにリンクすることもできます。