获得弯曲的类型(Get the type in flex)

2019-06-24 01:08发布

可有人告诉我,我怎么能确定柔性物体的类型? 尤其是我,我现在为我评价我想找出我是否有TextInput控件或单选按钮阵列存储多种类型的(但所有UIComponent)的数组。 是否有人有想法?

提前致谢

Answer 1:

您可以针对使用特定的类或者测试“是”经营者或者您可以使用flash.utils.getQualifiedClassName()(你传递你的对象) - 这将返回完全限定类名的字符串。



Answer 2:

它的工作:)

以下是我解决这个问题的办法

switch( true )
   {
    case item is Customer_SF:
     c = item as Customer_SF;
     break;

    case item is Opportunity:
     o = item as Opportunity; 
     break;

    case item is Product:
     o = ( item as Product )._opportunity;
     break;
    default:
     return true;
   }


Answer 3:

尝试使用“类名”属性。

它应该返回“的TextInput”或“按钮”视情况

for each (var item:* in myArray)
{
    if(item.hasProperty('className'))
    {
        trace("item ["+i+"] is :" + item['className']);
    }
}


Answer 4:

运营商“是”代表一个选项。

再有就是运营商的instanceof ,视情况可能会或可能不会是有用的。

也有静态方法ObjectUtil类getClassInfo 。 这一次返回不仅仅是对象的类名以上。

运营商“的typeof”不幸的是无用的课程。

而且,随着布兰登厅已建议, flash.utils.getQualifiedClassName() 。



Answer 5:

这里有一些简单的伪代码演示了如何使用的is你想要做什么操作:

for each (var item:* in myArray)
{
    if (item is TextInput)
        doSomethingWithTextInput(item as TextInput);
    else if (item is RadioButton)
        doSomethingWithRadioButton(item as RadioButton);
}


Answer 6:

is对类型的兼容性测试操作,是的。 从文档, is

...计算对象是否是与特定数据类型,类或接口兼容。 使用is操盘手的instanceof类型的比较操作。 你也可以使用is运算符来检查对象是否实现了接口。

此类别中其它有用的运营商typeof (返回原始的字符串表示), instanceof (类似于is ,但忽略接口兼容性)和as 。 ActionScript运算符的伟大和完整列表可以在这里找到 。

希望能帮助到你!



Answer 7:

最好的办法是用“是”经营者和使用这样的:

for( var i:int = 0; i < componentArr.length; i++ )
{
    var comp:UIComponent = componentArr[ i ];
    if( comp is DataGrid )
        // Handle DataGrid functionality here.
    else if (comp is DropDown )
        // Handle DropDown here
}

还有一个问题,然而,这种方法。 因为“是”将所有的子类返回true,你必须把所有的子孙类的祖先面前 - 必须列出来ListBase之前。 这可能会导致一些烦恼。

// This is important to remember:
var mc:MovieClip = new MovieClip();
trace( mc is Sprite ); // true

没有为你想要的对象是特定的类(而不是一个子类)的成员的情况下另外一个选择:你可以使用该对象的constructor属性和使用switch语句。

for( var i:int = 0; i < componentArr.length; i++ )
{
    var klass:Class = componentArr[ i ].constructor;

    switch( klass )
    {
        case DataGrid:
            // Handle DataGrid
            break;
        case Text:
            // Handle Text
            break;
        case NumericStepper:
             // Handle NumericStepper
            break;
        default:
             // Handle default
            break;

    }
}


文章来源: Get the type in flex