flashvars未在Adobe Flash Builder中的Flex 4.5应用程序中加载

时间:2011-10-28 22:59:55

标签: actionscript-3 flex4.5 swfobject

我正在关注this adobe flashvars example尝试在我的flex 4.5应用程序中加载flashvars。但是,代码不起作用。我真的不明白我做错了什么,或者与示例不同。这是我的index.template.html代码(在html-template文件夹中),它使用swfobject加载应用程序:

        function embedPlayer() {
            var flashvars = {};
            flashvars.userLoggedIn = true;
            flashvars.test = "hello";
            embedSWF(SWF_FILE, SWF_ID, SWF_WIDTH, SWF_HEIGHT, "9.0", "playerProductInstall.swf", flashvars);
        }

以下是我的flex应用程序的简化代码:

    <?xml version="1.0" encoding="utf-8"?>
<s:Application 
    xmlns:d="http://ns.adobe.com/fxg/2008/dt" 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:c="components.*" 
    initialize="mainInit()" 
    creationComplete="doCreationComplete()"
    applicationComplete="_initializer.applicationComplete()"
    xmlns:application="components.application.*" 
    xmlns:gui="com.gui.*" xmlns:main="com.gui.components.main.*" xmlns:photoTray="com.gui.components.main.photoTray.*">

    <fx:Style source="/assets/all.css" />

    <fx:Script>
        <![CDATA[
            import com.gui.components.main.Initializer;
            import com.gui.components.main.LayoutsController;
            import mx.core.FlexGlobals;         

            private var _initializer:Initializer;
            private var _layoutsController:LayoutsController;
            public var userLoggedIn:Boolean;                                                                 

            private function mainInit():void {
                _initializer = new Initializer(this);
            }

            private function doCreationComplete():void {
                _initializer.init();
                var params:Object = FlexGlobals.topLevelApplication.parameters;
                //userLoggedIn = params.userLoggedIn;
                _layoutsController = new LayoutsController(this);
            }   

        ]]>
    </fx:Script>

</s:Application>

我调用FlexGlobals.topLevelApplication.parameters(在creationComplete之后)尝试访问flashvars,adobe说这是在flex 4.5中实现它的方法。我使用Application.application.parameters和root.loaderInfo.parameters的研究都不推荐使用。

有谁看到我做错了什么?我的应用程序在flash builder中工作正常,除了在creationComplete上加载flashvars。

由于

1 个答案:

答案 0 :(得分:0)

这就是我在flex 3中的做法,不确定它是否适用于flex 4.5

Application.application.parameters.userLoggedIn

也在这一行

//userLoggedIn = params.userLoggedIn;

任何flash var的值都是您尝试分配布尔值的字符串 这样做。

//userLoggedIn = Boolean(params.userLoggedIn);