使用onInvoke工作的纯AS3项目

时间:2009-08-26 20:20:43

标签: actionscript-3 air

我正在尝试创建一个纯粹的ActionScript 3 AIR项目,不带 Flex,有点像以下问题:

ActionScript Project to AIR Application?

...但我不确定如何从onInvoke()访问命令行参数。我需要这个来访问我的Pure AS3 AIR应用程序的命令行参数。

这是我的源代码:

public class Doclet extends Sprite
{
    public function Doclet()
    {
        NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvoke);

        var win:NativeWindow = new NativeWindow(new NativeWindowInitOptions());
        win.activate();
        win.addEventListener(Event.CLOSE, function():void
        {
            NativeApplication.nativeApplication.exit(0);
        });

        win.stage.addChild(this);

        stage.scaleMode = StageScaleMode.NO_SCALE;
        stage.align = StageAlign.TOP_LEFT;
    }

    private function onInvoke(event:InvokeEvent):void
    {
        trace('Invoke...');
    }
}

为简洁起见,省略了导入。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

以下是我的代码中有关如何执行此操作的示例:

//在我的mxml WindowedApplication描述中:

<mx:WindowedApplication
    backgroundColor="0xFFFFFF"
    backgroundGradientColors="[0xFFFFFF, 0x93BBFF]"
    backgroundGradientAlphas="[0.5, 1]"
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    initialize="initEvent(event)"
    >

//需要进入此应用程序的mxml脚本区域的代码

//                   initialization
private function initEvent(event:Event):void{
                NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvokeEvent);
                NativeApplication.nativeApplication.addEventListener(BrowserInvokeEvent.BROWSER_INVOKE,onBrowserInvoke);
            //  Alert.show(NativeApplication.nativeApplication.publisherID);
            }

//调用程序时调用(可以运行多次)

        private function onInvokeEvent(event:InvokeEvent):void{
            trace("in onInvoke function");

            ++invokeCounter;


            if(event.arguments.length != 0){
                args = event.arguments.join(",");
            }else{//do nothing
            }
            firstInvoke = false;

        }

另请参阅adobe help以获取更完整的说明。