OpenLaszlo реализует функции, которые доступны только в определенных средах выполнения. Это верно для воспроизведения аудио MP3, веб-камеры Flash Player и доступа к микрофону, потоковой передачи по RTMP. Компилятор OpenLaszlo поддерживает вставку кода ActionScript непосредственно в сценарии и методы.
Вот пример приложения, которое перехватывает события Event.DEACTIVATE и Event.ACTIVATE и позволяет выйти из приложения, щелкнув / коснувшись красного представления.
API-интерфейсы ActionScript 3 можно импортировать с помощью тега , который можно использовать внутри холста, определений классов или любого экземпляра тега в вашем коде.
<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
}
Используя этот подход, легко повторно использовать код LZX для приложений DHTML, SWFx или AIR.