Apache flex 在运行时创建面板可以';我看不见他们
我的问题是我正试图制作一个面板。Main.mxml中的“我的”按钮,而panel函数是在panel_Create.mxml中定义的。代码运行良好。在panel_Create中,它们的函数用于在运行时创建面板。我面临的问题是,当我运行程序时,它不会显示面板,但它确实会增加n的值,并在单击8次后发出警告消息。请告诉我为什么我看不到面板。当我将所有代码放在Main.mxml中时,代码运行良好Apache flex 在运行时创建面板可以';我看不见他们,apache-flex,actionscript,flash-builder,Apache Flex,Actionscript,Flash Builder,我的问题是我正试图制作一个面板。Main.mxml中的“我的”按钮,而panel函数是在panel_Create.mxml中定义的。代码运行良好。在panel_Create中,它们的函数用于在运行时创建面板。我面临的问题是,当我运行程序时,它不会显示面板,但它确实会增加n的值,并在单击8次后发出警告消息。请告诉我为什么我看不到面板。当我将所有代码放在Main.mxml中时,代码运行良好 <fx:Script> <![CDATA[
<fx:Script>
<![CDATA[
import Components.panel_Create;
import mx.controls.Alert;
import spark.components.Button
public var adminPanel:panel_Create = new panel_Create();
public var n:Number = 0;
public function panel(event:MouseEvent): void
{
if ( n < 8)
{
adminPanel.panel_Create(n);
n++;
}
else
Alert.show('More Panels Not Allowed', 'Alert Box', mx.controls.Alert.OK);
}
]]>
</fx:Script>
<s:Button id="add" includeIn="State1" x="398" y="10" label="Add Panel" click="panel(event)"/>
<Components2:panel_Create includeIn="State1" x="10" y="66" width="737" height="599">
</Components2:panel_Create>
</s:Application>
试试这个:
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
private var panels:Array = [];
private function addPanel():void
{
if (panels.length < 8)
{
var panel:Panel = new Panel();
panel.title = "Panel "+(panels.length + 1);
panels.push(panel);
addElement(panel);
}else{
trace('More Panels Not Allowed');
}
}
]]>
</fx:Script>
<s:Button label="Add Panel" click="addPanel()"/>
</s:Application>
我相信这8个面板是根据您的一条评论中的代码创建的,它们作为子元素添加到adminPanel
问题是您的adminPanel从未添加到后台,因此不可见。adminPanel未被创建。您必须自己执行
addElement(adminPanel)
if ( n < 8)
{
adminPanel.panel_Create(n);
addElement(adminPanel)
n++;
}
if(n<8)
{
adminPanel.panel_创建(n);
附录(管理面板)
n++;
}
我不理解您在这些问题上的逻辑。为什么要创建一个panel\u Create
类(这是一个可怕的命名约定),然后让该类处理面板的创建?通过这样做,你到底想要完成什么?我试图在运行时在面板内制作一系列面板和其他一些东西。留下名字,我以后再定。我想在不同的mxml文件中执行此操作,而不是在相同的main.mxml中。在这里,我点击按钮,它应该在panel_create mxml中启动panel_create函数。但是当我点击面板时,面板不会显示出来-1-如果没有更多细节,这个问题无法回答。具体来说,必须提供面板_Create
类中的一些相关代码部分,特别是在调用addChild
方法的情况下。var myPanel:panel=new panel();myPanel.id=xx;附录(myPanel);setElementIndex(myPanel,索引);索引++;这就是它应该调用的代码如果您将附加代码作为编辑(而不是注释)放回原始问题中,我很乐意删除-1。否则,网站规则禁止我更改我的投票。我现在也在想同样的问题是,我如何才能使它们可见看看这个:注意addElement()