在外部加载的 swf 中设置输入字段的焦点
Posted
技术标签:
【中文标题】在外部加载的 swf 中设置输入字段的焦点【英文标题】:Setting focus of input field in externally loaded swf 【发布时间】:2012-05-16 01:25:48 【问题描述】:我正在将 swf 表单加载到我的 swf 电影中(以节省文件大小)。我在主 swf 中有一个静态 MC 的“人造形式”,当用户单击一个时,它会加载它自己的 swf 文件的“真实形式”。我要做的是根据用户点击的虚假表单的 MC 正确设置真实表单输入字段的焦点。
例如: 用户观看动画并在最后一帧看到表格(人造表格)。 用户单击“城市”输入字段以输入他们的城市。 外部加载的带有“真实表单”的 swf 文件会立即加载到虚假表单之上的主 swf 中,因此用户可以使用活动输入字段进行交互。 文本输入字段“城市”现在应该是焦点。
提前感谢您的帮助!
【问题讨论】:
【参考方案1】:如果您要设置焦点的文本输入的引用,您可以使用以下内容:
var cityInputField:TextField = mc.getChildByName("cityInputField") as TextField;
if(cityInputField)
stage.focus = cityInputField;
【讨论】:
不幸的是,这并没有成功。我可以假设“mc”(在 mc.getChildByName 中)正在引用我分配外部 swf 的 MC 对象?我正在加载 swf(成功)如下: function swfLoadedHandler(event:Event):void loaded_swf = event.target.content;已加载_swf.x = 200;已加载_swf.y = 42; addChild(loaded_swf); 您是否在调试器中单步执行代码并查看它是否执行了焦点行? 是的,我在“if”中添加了一个跟踪语句,但它没有被执行。所以它显然没有看到外部 swf 中的文本输入字段,我似乎无法弄清楚如何访问它。 mc 是您从外部 swf 加载的影片剪辑,因此您可能必须将内容转换为影片剪辑,然后确保获取正确的子项。 所以事实证明这是一个完美的 KISS 示例(我保证我是这里的第二个“S”)。我没有让事情变得过于复杂,而是返回并将代码还原为:stage.focus = loaded_swf.city_field1;这确实有效! (我确实将外部 swf 文件从手动拖动的文本输入更改为 AS 创建的,不确定这是否有所不同...)以上是关于在外部加载的 swf 中设置输入字段的焦点的主要内容,如果未能解决你的问题,请参考以下文章
AS3:如何在外部 swf 上的文本字段中使用 Android 默认字体?