2008-10-19 54 views

回答

2

雖然我沒有任何細節,但您鏈接的文章提到他的應用程序窗口可以被拖動和關閉。這些是僅限AIR的API(請參閱NativeWindow類),因此可能在某種程度上可能是您所問的。

但是,我的理解是,OpenLaszlo嘗試不實現可以在Flash中完成的事情,但不能實現(比如說)DHTML,因此如何執行本地文件訪問等操作可能不那麼明顯。可能你會想要下載文章中鏈接的源代碼並查看他是如何實現窗口拖/關的。

1

OpenLaszlo確實實現了僅在某些運行時纔可用的功能。這對於MP3音頻播放,Flash Player網絡攝像頭和麥克風訪問,RTMP流媒體來說都是如此。 OpenLaszlo編譯器支持將ActionScript代碼直接插入到腳本和方法中。

下面是一個示例應用程序,它捕獲Event.DEACTIVATE和Event.ACTIVATE事件,並允許您通過單擊/觸摸紅色視圖來退出應用程序。

可以使用<傳遞標籤導入ActionScript 3 APIs - 可以在畫布內使用標籤,類別定義或代碼中的任何標籤實例。

<canvas bgcolor="#ffffff" debug="false" height="100%" width="100%"> 

    <passthrough when="$as3"> 
     import flash.events.Event; 
     import flash.desktop.NativeApplication; 
    </passthrough> 

    <handler name="oninit"> 
     NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, __onDeactivate); 
     NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE, __onActivate); 
    </handler> 

    <method name="__onActivate" args="ev"> 
     Debug.info("onActivate"); 
     Debug.info("frame rate is " + this.getDisplayObject().stage.frameRate) 
    </method> 

    <method name="__onDeactivate" args="ev"> 
     Debug.info("onDeactivate"); 
     Debug.info("frame rate is " + this.getDisplayObject().stage.frameRate) 
    </method> 

    <view width="80%" height="50%" bgcolor="red" clickable="true"> 
     <passthrough> 
      import flash.desktop.NativeApplication; 
     </passthrough> 
     <handler name="onclick"> 
      NativeApplication.nativeApplication.exit(); 
     </handler> 
    </view> 

</canvas> 

如果希望只SWFX運行時執行的代碼,你可以檢查把這些代碼成塊檢查$ AS3屬性:

if ($as3) { 
    // Insert some code for the SWFx runtime or AIR applications only 
} 

使用方法,很容易重新爲DHTML,SWFx或AIR應用程序使用LZX代碼。

相關問題