【问题标题】:ActionScript 2.0 - Matching Traces Don't Actually MatchActionScript 2.0 - 匹配的轨迹实际上并不匹配
【发布时间】:2011-09-29 05:57:13
【问题描述】:

(大神帮我在 AS2 中编程)

我正在遍历一组文本字段对象,并在按下 Tab 时跟踪选定的焦点字段以及每个对象。

我试图将这些对象等同起来,但尽管它们追踪的完全相同,但它们却不是。

m_InputFieldsArray = new Array(m_TitleTextInput, m_CommentsTextArea, m_EmailTextInput);

for (var i:Number = 0; i < m_InputFieldsArray.length; i++)
{
    trace("Get Focus: " + Selection.getFocus());
    trace("Arr Index: " + m_InputFieldsArray[i].textField);

    if (Selection.getFocus() == m_InputFieldsArray[i].textField) 
    {
        trace("Match!");
        return;
    }
    else
    {
        trace("NO Match!");
    }
}

输出:

Get Focus: _level0.m_Window.form.m_TitleTextInput.textField
Arr Index: _level0.m_Window.form.m_TitleTextInput.textField
NO Match!
Get Focus: _level0.m_Window.form.m_TitleTextInput.textField
Arr Index: _level0.m_Window.form.m_CommentsTextArea.textField
NO Match!
Get Focus: _level0.m_Window.form.m_TitleTextInput.textField
Arr Index: _level0.m_Window.form.m_EmailTextInput.textField
NO Match!

第一组轨迹相同,但显然它们不匹配。 Selection.getFocus() 返回一个字符串,而数组索引正在跟踪文本字段对象。如果我将toString() 添加到文本字段对象,它将跟踪为[Object object]

我怎样才能完成比赛?

【问题讨论】:

  • m_TitleTextInput 和其他组件?
  • 是的,它们是定制的 Scaleform 组件。

标签: actionscript match trace


【解决方案1】:

eval() 用于Selection.getFocus()

【讨论】:

    【解决方案2】:

    如果您不想使用具有bad reputation 的eval() 来获得与Selection.getFocus() 返回的相同类型的字符串表示,则可以使用"" + m_InputFieldsArray[i].textField。它不会像toString() 那样返回“[Object object]”。

    这基本上就是您在跟踪调用中看到的,与对象引用连接的字符串给出了对象的路径,而不是对象上的 .toString()。

    我现在无法测试 AS2,但我很确定它是如何工作的。所以你可以这样做:

    if (Selection.getFocus() == "" + m_InputFieldsArray[i].textField) 
    

    【讨论】:

      猜你喜欢
      • 2015-10-05
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多