【问题标题】:use id as variable使用 id 作为变量
【发布时间】:2012-01-22 20:10:48
【问题描述】:

我将组件 id 传递给函数,然后将 id 用作变量。

例如,我传递的 id 是 - user_dg

我遇到的问题是当我对变量进行跟踪时 - this[dg_id]

我得到 - Application0.Canvas662.Canvas878.DataGrid888,当我想要它时 - user_dg

如何输出实际的组件id?

【问题讨论】:

  • 你试过这个[dg_id].id吗?自从我接触 flex 以来已经有一段时间了,但它可能就这么简单......
  • 哈哈,成功了。谢谢

标签: actionscript-3 apache-flex variables components


【解决方案1】:

基于 cmets;听起来您将错误的东西传递给函数;很可能是组件的实例,而不是实际组件的名称。

这有点含糊,因为您没有向我们展示方法或您调用它的方式。但是,像这样:

public function myFunction(component:UIComponent):void{
  trace(component);
  trace(component.id);
}

将期望组件的实例,而不是实际的组件。你可以这样调用这个函数:

myFunction(myDataGrid);
myFunction(myList);
myFunction(myComboBox)

如果要传入ID;这将是不寻常的,但你可以这样做:

public function myFunction(componentID:String):void{
 trace(this[componentID]);
 trace(componentID);
}

你可以这样称呼它:

myFunction('stringThatRepresentsAVariableName');
myFunction(myDataGrid.id);
etc..

在您需要处理的实际实例上使用 ID 是非常不寻常的。要求一个实例为将来需要维护此代码的人提供了更好的文档。要求字符串 ID 需要该函数位于具有子 ID 的同一组件中;这可能会减少您将来的重用或重构机会。

【讨论】:

    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多