Apache flex 在flex中实现可重用组件
我试图在Flex3中实现可重用组件。我有一个选项卡导航器,它是动态的。在屏幕上我有一个带有点击操作的按钮,将创建一个带有vbox作为子项的选项卡导航器,在vbox中我有一个文本框,它接收用户输入的信息 我在单击按钮旁边有一个显示按钮。当用户单击“显示”按钮时,如果四个选项卡打开,我们需要将VBox的所有文本框放入文本区域 这是我的密码Apache flex 在flex中实现可重用组件,apache-flex,actionscript,Apache Flex,Actionscript,我试图在Flex3中实现可重用组件。我有一个选项卡导航器,它是动态的。在屏幕上我有一个带有点击操作的按钮,将创建一个带有vbox作为子项的选项卡导航器,在vbox中我有一个文本框,它接收用户输入的信息 我在单击按钮旁边有一个显示按钮。当用户单击“显示”按钮时,如果四个选项卡打开,我们需要将VBox的所有文本框放入文本区域 这是我的密码 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="ht
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import Repeat;
private var input:String;
private var i:int=0;
private function addNextTab(event:Event):void {
tabs.addChild(new Repeat("Tab"));
}
private function show()
{
var child:DisplayObject;
for(i=0;i<tabs.numChildren;i++)
{
child=tabs.getChildAt(i);
input=TextInput(child.getChildAt(0)).text;//error
textArea.text=textArea.text+input;
}
}
]]>
</mx:Script>
<mx:TabNavigator id="tabs" width="100%" height="100%">
</mx:TabNavigator>
<mx:TextArea id="textArea"/>
<mx:Button label="Add Next Tab" click="addNextTab(event)" />
<mx:Button label="Show Values" click="show()" />
</mx:Application>
我必须访问所有选项卡的文本框信息并将其放入文本区域
有人能帮我吗
顺便说一句:它是Flex3应用程序。您应该将文本设置为公共属性,而不要创建嵌套的VBox将其添加到其中。您已经在扩展VBox,所以只需添加child。。像这样:
package {
import mx.containers.VBox;
import mx.controls.Label;
import mx.controls.TextInput;
public class Repeat extends VBox {
public var text:TextInput;
public function Repeat(name:String) {
label = name;
}
override protected function createChildren():void {
super.createChildren();
text = new TextInput();
addChild(text);
}
}
}
编辑:显示以访问它
child = tabs.getChildAt(i) as Repeat;
child.text.text = someNewValue;
这是说错误,访问未定义的属性子项..也就是说,当我们将文本作为公共变量时,它会对可重用性产生任何影响。如果你看到我的程序,它会一次又一次地生成相同的组件,当用户单击“显示”按钮时,它会迭代地将所有可重用到组件的文本值添加到textArea。它将完全按照你的要求工作。错误是因为您设置了-var子项:DisplayObject;然后使用我给您的代码child=tabs.getChildAt(I)作为重复;您需要设置:var child:Repeat;可重用性是正确的。每次调用newrepeat(“Tab”)都会创建一个单独的Repeat对象,该对象有自己的文本输入,称为text。这就是为什么每个按钮都有标签。带有公共var标签的一个按钮类(不完全相同,但点相同)。。。尽可能多的新按钮。:)实际上,我的主要目标是收集表单(有4个文本框,用户输入,4个选项卡,所以有16个值,我需要将所有16个值的信息放到另一个屏幕上…因此我尝试了这一个作为示例..它工作正常..因此我可以继续我的工作..你能对我的主要目标给出任何建议吗..我还需要对我的目标实施一些其他改进..如果你不介意的话请注意这一页。我会自己做的。只有当我真的想做的时候我才会问。谢谢
child = tabs.getChildAt(i) as Repeat;
child.text.text = someNewValue;