如何找出动画片段或文本字段的目标路径。
我需要获得像Object(root).moviclip1.movieclip2.textfield
答案 0 :(得分:1)
我很确定没有一种属性或方法可以帮助你。您可以遍历displaylist树,搜索您的目标。但这可能是一个很大的循环,取决于你有多少图形
答案 1 :(得分:1)
你的意思是这样吗?
addEventListener(MouseEvent.CLICK, targetMC);
function targetMC(ev:Event):void
{
var curinstance = ev.target.valueOf();//object
var targ:Object = curinstance.parent;
var path= curinstance;
do
{
if (targ is Stage)
{
path = targ + "." + path;
}
else
{
path = targ + "." + path;
}
targ = targ.parent;
}
trace(path);
}
答案 2 :(得分:1)
我想我理解你在寻找什么,我写了一个小功能来完成它。这很丑陋,但应该这样做。
function getChildFromPath(base:DisplayObjectContainer, path:String):DisplayObject
{
var pathAsArr:Array = path.split(".");
if (pathAsArr.length)
{
var newBase:DisplayObjectContainer = base.getChildByName(pathAsArr.shift() as String) as DisplayObjectContainer;
if (newBase)
return getChildFromPath(newBase, pathAsArr.join("."));
else
return null;
}
return base;
}
你可以给它一个查看路径的起始位置(这个或阶段,取决于你为路径钻取的位置),以及字符串中的路径。
所以例如,假设我有一个名为“a”的mc,而在“a”里面有一个名为“b”的mc,你不能用这个[“ab”]得到它,而是用这个[ “一个”] [ “b”]。 使用此功能,您可以执行以下操作:
var path:String = "a.b";
var mc:DisplayObject = getChildFromPath(this, path);
我没有用太多类型的输入检查它,所以我不确定在某些情况下它不会破坏或永远循环。
答案 3 :(得分:0)
这可能不是你想听到的,但似乎你正在尝试使用Actionscript 2做事。
您可能希望更多地了解OOP(面向对象编程)。 它看起来非常外星,就像它实际上对你不利,但是当项目变得更大时,它会有很大的帮助。
动画片段的名称不再是父母的属性名称。我担心,如果你要做我认为你想做的事情,让属性名称遍历movieclip树,它就行不通,你会看到像
这样的东西stage.instance2.instance15.instance45.instance90;
正如你所能猜到的那样无济于事。