我的问题是我正在尝试制作一个小组。我在Main.mxml中的按钮,而面板函数在panel_Create.mxml中定义。代码工作正常。在panel_Create中,它们是在运行时创建面板的函数。我面临的问题是,当我运行该程序时,它不会显示面板,但它确实增加了n的值,并且在8次点击后它给出警报消息。请告诉我为什么我看不到面板。当我将所有代码放在Main.mxml
中时,代码工作正常<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>
答案 0 :(得分:1)
我相信已创建了8个面板,并根据您的一条评论中的代码将它们作为子元素添加到adminPanel 。
问题是您的adminPanel永远不会添加到舞台中,因此不可见。
答案 1 :(得分:0)
请改为尝试:
<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>
答案 2 :(得分:0)
未创建adminPanel。你必须自己做addElement(adminPanel)
if ( n < 8)
{
adminPanel.panel_Create(n);
addElement(adminPanel)
n++;
}