AS3:从另一个动态添加的孩子访问一个动态添加的孩子
Posted
技术标签:
【中文标题】AS3:从另一个动态添加的孩子访问一个动态添加的孩子【英文标题】:AS3: Accessing a dynamicaly added child from another dynamicaly added child 【发布时间】:2013-05-01 21:21:46 【问题描述】:所以这是我的问题,我在舞台上有一个按钮,添加了一个名为“fadeL”和“PDF1”的 MC
快速说明:“fadeL”和“PDF1”是“fadeMC”和“PDFwindow”的实例,下面是它们的代码:
var fadeL:fadeMC = new fadeMC();
this.addChild(fadeL);
fadeL.x = 0;
fadeL.y = 0;
var PDF1:PDFwindow = new PDFwindow();
this.addChild(PDF1);
PDF1.x = 30;
PDF1.y = 130;
在 PDF1 中还有一个名为“PDFviewer”的 MC,其中包含一个名为 closeBtn 的按钮
这是该按钮的动作脚本:
var container:DisplayObjectContainer = stage.getChildAt(0) as DisplayObjectContainer;
var mc:MovieClip = container.getChildByName("fadeL") as MovieClip;
mc.gotoAndStop(12);
所以基本上我试图告诉“fadeL”从第 12 帧开始播放(最终使其淡出屏幕)
但这是按下 closeBtn 时出现的错误:
TypeError:错误 #1009:无法访问空对象引用的属性或方法。 在 NovartisTable_fla::PDFviewer_4/closeTap()[NovartisTable_fla.PDFviewer_4::frame1:9]
这里有什么建议吗?一直在寻找其他方法来解决这个问题,但都失败了
-托德
【问题讨论】:
您可能需要分享更多代码以获得相关帮助。 【参考方案1】:当您调用 stage.getChildAt(0)
时,您实际上是在获取对 fadeL
的引用(假设您显示的代码是您向显示列表添加项目的唯一时间)。
将您的按钮处理程序更改为:
var mc:MovieClip = stage.getChildAt(0) as DisplayObjectContainer;
mc.gotoAndStop(12);
如果做不到这一点,我会给fadeL
一个实际的name
,这样你就可以执行以下操作:
fadeL.name = "fadeL";
...
var mc:MovieClip = stage.getChildByName("fadeL") as MovieClip;
mc.gotoAndStop(12);
【讨论】:
以上是关于AS3:从另一个动态添加的孩子访问一个动态添加的孩子的主要内容,如果未能解决你的问题,请参考以下文章