我在Flash Builder 4中创建了一个应用程序,用于加载Flash文件的SWF,我想访问这些Flash文件中的影片剪辑。我可以使用以下方式访问顶级电影剪辑:
var assetName:String = "example_mc";
this._graphics[assetName].addChild(this._customText);
但是,当我想访问嵌套的影片剪辑时,我没有成功,我尝试过:
var assetName:String = "example_mc";
var assetName2:String = "example2_mc";
this._graphics[assetName][assetName2].addChild(this._customText);
我尝试过:
MovieClip(DisplayObjectContainer(this._graphics.getChildByName(assetName)).getChildByName(assetName2)).addChild(this._customText);
此外,我尝试了方括号和“getChildByName”的变体,但仍未成功。
所有moviclips都在Flash文件的第1帧中实例化,有什么想法吗?
编辑**
我忘了调整我的错误处理,所以会显示错误,加上我没有显示文本的所有测试,周一下午晚些时候不是我最亮的时刻! ;)我最终解决了,解决方案是(如上所述):
MovieClip(DisplayObjectContainer(this._graphics.getChildByName(assetName)).getChildByName(assetName2)).addChild(this._customText);
或者:
MovieClip(DisplayObjectContainer(this._graphics.getChildByName(assetName))[assetName2]).addChild(this._customText);
希望这可以帮助其他人。
由于
克里斯
答案 0 :(得分:0)
通过侦听Event.COMPLETE或Event.INIT事件,确保在尝试访问子影片剪辑之前加载并初始化了Flash文件。
实施例: myLoader.contentLoaderInfo.addEventListener(Event.INIT,onComplete);
只需输入即可轻松引用所有内容 this._graphics.example_mc.example2_mc.addChild(this._customText);