2014-10-30 19 views
0

我想在adobe flex 3中用關閉按鈕創建多個選項卡。爲此我創建了父對象和子對象。用於關閉按鈕的選項卡和子對象的父對象,並將這兩個對象放在Group容器中語法上稱爲「addButton()」的函數中。我的代碼在adobe flex 4.5中工作正常,但在adobe flex 3中沒有工作。由於某種原因,我必須使用adobe flex 3.我嘗試使用其他容器,如:HBox,controllbar等,但這些都無法使適當的選項卡視圖。下面是代碼。組元素在adobe flex 3中不工作

<?xml version="1.0" encoding="utf-8"?> 
<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" 
       minWidth="127" minHeight="34" backgroundColor="#F4E8E8"> 
    <s:layout> 
     <s:FormItemLayout/> 
    </s:layout> 
    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 


<fx:Script> 
    <![CDATA[ 
    import mx.graphics.SolidColor; 

    import spark.components.Button; 

    import spark.components.Group; 

    import spark.primitives.Rect; 

    public function addButton():void { 

     //Child Object 
     var myButton:Button = new Button(); 
     myButton.id = "dd"; 
     myButton.label="X"; 
     myButton.width = 40; 
     myButton.height = 20; 
     myButton.depth =1; 
     myButton.x=50; 
     myButton.setStyle("color",'red'); 
     myButton.addEventListener(MouseEvent.CLICK, btn); 

     //Parent Object 
     var lble:Group = new Group(); 
     var solidColor:SolidColor = new SolidColor(0xFF0000); 
     var rec:Rect = new Rect(); 

     rec.fill = solidColor; 
     rec.percentWidth = 100; 
     rec.percentHeight = 100; 
     lble.width = 127; 
     lble.height = 34; 
     lble.depth =0; 
     lble.addElement(rec); 
     lble.addEventListener(MouseEvent.CLICK, lable); 
     lble.addElement(myButton); 
     myGroup.addElement(lble); 

    } 

    private function btn(e:Event):void { 
     e.stopPropagation(); 
     jj.text = 'Text For Button'; 
    } 

    private function lable(e:Event):void { 
     kk.text = "Text For Label"; 
    } 

    ]]> 
</fx:Script> 

<s:HGroup id="myGroup"> 
    <s:Button width="126" height="34" click="addButton();" label="Click" skinClass="spark.skins.spark.ButtonSkin"/> 
</s:HGroup> 

<s:Label id="jj" x="14" y="150" width="1200" height="50" backgroundColor="gray" text="Button"/> 
<s:Label id="kk" x="14" y="69" width="1200" height="50" backgroundColor="gray" text="Label"/> 

</s:Application> 

請幫我

+0

我不認爲Flex 3支持spark組件。 – BotMaster 2014-10-30 13:24:28

回答

1

1)族元素(容器)中的Flex 3不工作:

絕對不會在Flex 3的工作,有Flex 3的之間的主要區別Flex 4或mx(halo)和spark(Gumbo)。如果要將組件從spark轉換爲mx或反之,則需要清楚地瞭解這兩種情況。

這裏是一個很好的文章解釋了 Difference between Flex 3 and Flex 4

2)我試圖創建在Adobe Flex 3的關閉按鈕多標籤:有

由於Flex是10年成熟框架有很多可用的開源組件,您不必從頭開始創建組件。但我很欣賞你試圖以你自己的方式去做。

有在這個一看你開始創建組件

Flex 3 Component Life cycle

Flex 4 Component Life cycle and Creating Advanced spark components

Spark Tab with close button

Flex 3 SuperTabNavigator FlexLib component

Flex: How to add a tab close button for TabNavigator component

1

您可以使用作爲mx組件。這裏是你可以在flex 3中做的事情:

<?xml version="1.0"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> 
<mx:Script> 
<![CDATA[ 
    import mx.containers.Box; 

    public function addButton():void { 

     //Child Object 
     var myButton:Button = new Button(); 
     myButton.id = "dd"; 
     myButton.label="X"; 
     myButton.width = 40; 
     myButton.height = 20; 
     myButton.x=50; 
     myButton.setStyle("color",'red'); 
     myButton.addEventListener(MouseEvent.CLICK, btn); 

     //Parent Object 
     var box:Box = new Box(); 
     box.setStyle("borderThickness", "1"); 
     box.setStyle("borderStyle", "solid"); 
     box.setStyle("borderColor", "black"); 
     box.setStyle("backgroundColor", "0xFF0000"); 
     box.width = 127; 
     box.height = 34; 
     box.addEventListener(MouseEvent.CLICK, lable); 
     box.addChild(myButton); 
     myHBox.addChild(box); 

    } 

    private function btn(e:Event):void { 
     e.stopPropagation(); 
     jj.text = 'Text For Button'; 
    } 

    private function lable(e:Event):void { 
     kk.text = "Text For Label"; 
    } 

    ]]> 
</mx:Script> 

<mx:HBox id="myHBox"> 
    <mx:Button width="126" height="34" click="{addButton();}" label="Click"/> 
</mx:HBox> 

<mx:Label id="jj" x="14" y="150" width="1200" height="50" text="Button"/> 
<mx:Label id="kk" x="14" y="69" width="1200" height="50" text="Label"/> 

</mx:Application>