Apache flex 在组件中设置Flex复选框的地址

Apache flex 在组件中设置Flex复选框的地址,apache-flex,actionscript-3,mxml,Apache Flex,Actionscript 3,Mxml,我在组件中有一个复选框: <s:CheckBox id="myCB_1" /> 仅对组件进行寻址,如: myComponent.myCB_1.selected 不起作用。有人提到我需要在我的组件中创建一个变量,该变量引用checkbox的id(myCB_1),但我真的不明白或者不知道怎么做,他们也没有详细说明 如何从my main.mxml中测试组件中复选框“myCB_1”的状态 非常感谢, 标记 (新手)由于信息很少,我怀疑您最初将复选框包含在main.mxml中,并将其移动到

我在组件中有一个复选框:

<s:CheckBox id="myCB_1" />
仅对组件进行寻址,如:

myComponent.myCB_1.selected
不起作用。有人提到我需要在我的组件中创建一个变量,该变量引用checkbox的id(myCB_1),但我真的不明白或者不知道怎么做,他们也没有详细说明

如何从my main.mxml中测试组件中复选框“myCB_1”的状态

非常感谢,

标记


(新手)

由于信息很少,我怀疑您最初将复选框包含在main.mxml中,并将其移动到自定义组件中。如果是这样,您需要通过自定义组件的ID对复选框的ID进行寻址。类似这样的内容(来自main.mxml):

如果情况并非如此,请编辑您的帖子并提供更多详细信息


编辑

您说您创建了一个新的自定义组件,并将复选框移到其中。很好,这是一个有用的开始:)当您在main.mxml文件中包含新组件时,它应该是这样的:

<component:YourNewComponent />
<local:MyComponent id="myComponent" />

当然,无论您如何命名它(以及使用哪个名称空间来引用它),都将与我的示例不同,但原则仍然应该适用。在main.mxml中,您需要为自定义组件提供一个唯一的ID字符串,以便在main中引用它:

<component:YourNewComponent id="myComponent" />


从这里开始,您应该能够引用组件以及其中的任何公共元素:
myComponent.myCB_1

您需要通过组件引用复选框。假设您在main中使用组件,如下所示:

<component:YourNewComponent />
<local:MyComponent id="myComponent" />

提供有关使用此脚本的上下文的更多详细信息将非常有用。尽管如此,我还是要抛出一些可能有用的信息

为了让脚本访问组件,它必须在组件的范围内。通常这意味着以下情况之一:

  • MXML中有一个
    标记,其中的代码引用同一MXML文件中的组件
  • MXML中有一个
    标记,其中
    external.as
    引用MXML文件中的组件
  • 您正在脚本中创建组件,并且在ActionScript中有组件的定义(例如
    var myCB_1:CheckBox;
    在类定义中)

如果脚本和组件不在同一范围内,那么它们就无法看到彼此。

奇怪的是,它可以工作。当我使用点表示法(myComponent.myCB_1.selected)引用组件时,我遇到了一个获取1119错误(说明1119:通过静态类型类的引用访问可能未定义的属性myCB_1)。当我没有通过myComponent对其进行寻址时,遇到了一个1120错误(说明1120:访问未定义的属性myCB_1)

有了这些错误,我从没想过试着运行这个东西。长话短说-它运行时有或没有寻址组件(???)去吧

感谢所有的投入,并希望听到任何其他意见


MCE

为什么这不起作用?您能告诉我们如何从main.mxml调用它吗?main如何包含您的自定义组件?请完整发布main.mxml的内容——我们需要了解您是如何将新的自定义组件嵌入main的。
if(myComponent.myCB_1.selected) { // do something }