2015-09-24 69 views
0

我有以下MXML代碼,但我需要從Actionscript運行它。我如何在AS中編寫這個?非常感謝!!在Actionscript3中寫入MXML代碼

<?xml version="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/halo" 
     applicationComplete="applicationCompleteHandler()"> 

    <fx:Script> 
    <![CDATA[ 

     private var bannerIntegration : BannerAd; 

     public function applicationCompleteHandler():void 
     { 
     Security.allowDomain("*"); 

     bannerIntegration = new BannerAd(banner); 
     } 
    ]]> 

    </fx:Script> 
     <s:Image id="banner" width="300" height="250"/> 
</s:Application> 

回答

0

這只是從內存中,所以可能需要一些調整:

基本上你將創建一個正常的

class SpecialApplication extends Application {

在你的IDE或mxmlc的叫你選擇SpecialApplication作爲類建立。 類裏面你的屬性,你讓他們現在:

private var bannerIntegration : BannerAd; 
private var banner:Image; 

其他一切都簡單回答你的例子,但我敢肯定,這是不完整的應用程序,所以你應該讀一些有關Flex生命週期(要小心,你看是正確的:在一個針對Flex 3 *是位從一個Flex 4中的*不同) 所以最好

override protected function createChildren():void {

創建並添加UI元素:

if (image == null) { 
    image = new Image(); 
    image.width = 300; 
    image.hight = 250; 
    addChild(image); 
    bannerIntegration = new BannerAd(banner); 
} 

我不確定Security.allowDomain("*");是否需要一些特殊的時機,也許你也可以在createChildren()之內做。 否則,您可以使用上述腳本塊中的相同方法(使用額外的event:FlexEvent參數)來執行此調用。只要做到

addEventListener(FlexEvent.CREATION_COMPLETE, applicationCompleteHandler)

在構造函數中。

if裏面的createChildren()是否確保只創建一次ui元素。由於每次添加該組件時都會調用createChildren()。 (在應用程序中並不那麼重要,但是使用ActionScript類創建組件的好習慣。