您自己已经暗示了答案:在形状对象上使用 members 属性。它返回一个包含在其中的对象数组,这些对象可能是也可能不是文本对象。
您没有指定是否使用 fl.findObjectInDocByType() 来扫描文档中的文本对象和形状(潜在组),但这也是一个好主意。
http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00004151.html
我相信以下脚本将跟踪 FLA 中所有动态文本字段的文本值,除非我错过了一些讨厌的嵌套案例。无论如何,它应该有望让您继续前进。请注意,您需要从“命令”菜单运行脚本,以便 fl.findObjectInDocByType() 不会引发错误。有关更多信息,请参阅上面链接中的评论。
// Look for text objects
var doc = fl.getDocumentDOM();
var typeToSearchFor = "text";
var results = fl.findObjectInDocByType(typeToSearchFor, doc);
for(var i = 0; i < results.length; i++)
{
if(results[i].obj.textType == "dynamic")
{
doWhatever(results[i].obj);
}
}
// Look for shapes
typeToSearchFor = "shape";
results = fl.findObjectInDocByType(typeToSearchFor, doc);
var textObjects;
for(var i = 0; i < results.length; i++)
{
var members = results[i].obj.members;
for(var j = 0; j < members.length; j++)
{
if(members[j].elementType == "text" && members[j].textType == "dynamic")
{
doWhatever(members[j]);
}
}
}
function doWhatever(textObj)
{
fl.trace(textObj.getTextString());
}