如何将查询字符串值传递给swf?

时间:2011-09-29 17:35:59

标签: flex flex4 flash query-string

这让我疯了......基于我的研究,我应该能够将QueryString参数直接传递给swf对象,如下所示:

http://localhost:3000/SomeFlash/bin-debug/myFlash.swf?userId=827419

在mxml oncreationcomplete方法中,我尝试了以下方法:

// oncreationcomplete method
    var userIdTest1:String = FlexGlobals.topLevelApplication.parameters[0];
    var userIdTest2:String = Application.application.parameters.userId;
    var userIdTest3:String = this.parameters.userId;


    // External Interface
    ExternalInterface.addCallback("OnGameLoad", ClientParams);


// callback method
   protected function ClientParams(userId:String):void
   {
        this.userId = userId;           
   }    

http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf626ae-7feb.html

我正在使用FlashBuilder 4.5和Flex 4.5.1编译器。我正在使用带有html包装器的mxml,但我试图通过url将参数直接传递给swf。

2 个答案:

答案 0 :(得分:2)

如果你直接启动swf,

ExternalInterface不可用。

同样,我怀疑这是queryString不可用的原因。

尝试点击托管HTML页面。 (即,http://localhost:3000/SomeFlash/bin-debug/myFlash.html?userId=827419

答案 1 :(得分:1)

经过大量测试和一些愚蠢的运气后,我发现以下内容对于获取查询字符串参数非常有用。

//在oncreationcomplete方法

this.userId = this.parameters.userId;