【问题标题】:AS3 Change textfield inside movieclip added from libraryAS3 更改从库中添加的movieclip 中的文本字段
【发布时间】:2011-08-01 02:01:35
【问题描述】:

我正在尝试执行以下操作:

我的舞台中有一个名为 zonaCentral_mc 的空影片剪辑。我使用具有此代码的函数:

zonaCentral_DescripcionProceso = new zonaCentral_DescripcionProceso_mc();
zonaCentral_mc.addChild(zonaCentral_DescripcionProceso);

它将影片剪辑 zonaCentral_DescripcionProceso 从库中加载到空影片剪辑 zonaCentral_mc 中。加载的 MC 内部有一个名为 titulo_text 的动态文本字段。如何更改该文本?我正在尝试:

this["zonaCentral_mc"].getChildByName("zonaCentral_DescripcionProceso").getChildByName("titulo_text").text = "hello";

但我收到错误:#1010: 一个术语未定义且没有属性

我也尝试了 dot 表示法 this["zonaCentral_mc"].zonaCentral_DescriptionProceso.titulo_text.text,结果相同。

我是否以错误的方式访问它?为什么不定义,我相信它们都已经定义并且在我调用上述语句的阶段。

【问题讨论】:

  • 我不熟悉this["zonaCentral_mc"] 注意到movieclip 的风格。您是否尝试过仅使用zonaCentral_mc?我会尝试一次追踪您的订单项。先zonaCentral_mczonaCentral_mc.getChildByName("zonaCentral_DescripcionProceso")等,看看问题出在哪里。
  • 嗨 Sam,谢谢你的回复,问题是加载的 MC 没有实例名称

标签: actionscript-3 textfield addchild


【解决方案1】:

您实例化的 MovieClip 没有实例名称,这就是您无法通过“getChildByName”访问它的原因。

试试这个:

zonaCentral_DescripcionProceso.name = "zonaCentralChildClip";
...
this["zonaCentral_mc"].getChildByName("zonaCentralChildClip").titulo_text.text = "hello";

而且,我很确定您也可以访问文本字段:

zonaCentral_DescripcionProceso.titulo_text.text = "hello";

请注意,如果您的 zonaCentral_DescripcionProceso 是一个 MovieClip,您可以在没有“getChildByName”方法的情况下访问文本字段。

干杯, 抢

【讨论】:

  • 非常感谢!我尝试了第二个选项并且它有效。我认为由于 zonaCentral_DescriptionProcesozonaCentral_mc 的子级,因此在使用点符号时我必须通过父级访问子级。我也不知道我必须指定实例名称,我假设我会使用创建时使用的变量名称。好吧,我今天学到了更多东西:)
  • 好吧,如果您有嵌套剪辑,则实例名称非常有用。在这种情况下,您可以保留它,因为您可以通过 zonaCentral_DescriptcionProceso 变量访问您的实例。
  • 如果在第一个解决方案中 zonaCentral_mc 位于名为 mcA 的movieClip 实例中怎么办?那么 this["mcA.zonaCentral_mc"].getChild 不起作用!有什么想法吗?
猜你喜欢
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
  • 1970-01-01
  • 2015-03-19
  • 1970-01-01
相关资源
最近更新 更多