2013-02-26 48 views
1

執行ActionScript類的功能,我需要創建一個使用OSMF視頻播放器。我想從actionscript文件中分離我們的mxml文件。我怎樣才能做到這一點 ?我有一個動作類文件,我想在加載mxml時執行它的構造函數。從MXML

我已添加creationComplete =「initApp()」,並在initApp上調用var p = new myclass();。現在MyClass的()我想添加標籤編程

my_player.mxml 

<?xml version="1.0" encoding="utf-8"?> 
<!-- controls\videoplayer\VideoPlayerSimple.mxml--> 
<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" creationComplete="initApp()" 
        > 
    <fx:Script> 
     <![CDATA[ 
      public function initApp(){ 
       var p = new my_player("a"); 
      } 
     ]]> 
    </fx:Script> 

</s:Application> 

my_player.as 

    package 
{ 
    import mx.controls.Label; 
    import mx.core.Application; 
    import mx.events.FlexEvent; 
    import spark.components.Application; 
    public class my_player extends spark.components.Application 
    { 
     public function convey_player(a:String){ 
      var label:Label = new Label(); 
      label.text = "Testxxx"; 
      addElement(label); 
        Alert.show("Hello"); 

     } 
    } 
} 

但不添加任何閃爍。我錯過了什麼嗎?當一個對象JS的實例創建

回答

2

構造函數將只運行。如果你想運行構造函數代碼,你將不得不創建它的一個實例。在你的MXML文件中添加的事件偵聽器creationComplete事件,並創建您的ActionScript對象的實例存在。

MXML代碼完成其創作過程之後作爲它的一部分的組件的生命週期,這將有效地執行ActionScript類構造函數代碼。

+0

我已根據您的指南進行編輯,並在問題中添加了更改,請您檢查一下嗎?謝謝 ! – 2013-02-26 20:31:25

+0

我看到閃光燈不添加警報你好,但標籤。 – 2013-02-26 21:23:20

+2

你通常不會有一個Flex應用程序的兩個應用程序。我懷疑這可能會導致問題。您添加的標籤將不會顯示,因爲您將其添加到永遠不會添加到顯示列表的組件中。在你的initApp()中你需要一個addElement(p)。閱讀Flex組件生命週期後,您將從中受益。 http://help.adobe.com/en_US/flex/using/WS460ee381960520ad-2811830c121e9107ecb-7fff.html組件應該在createchildren()方法中創建;不在構造函數中。 – JeffryHouser 2013-02-26 21:32:41