0

我的一所老大学用 Flash 制作了这个精美的纸娃娃,我现在必须将其嵌入网页中。我可以用帽子、衬衫、鞋子等 来装扮纸娃娃。
每次选择纸娃娃旁边的项目时,FlashVars 参数都会更新。

例如,当按下“帽子”时,FlashVars 将发生以下情况。
hat0shoe0... ----> hat1shoe0...
这顶帽子会出现在我的纸娃娃上。

有没有办法让 FlashVars 出来?所以我可以在服务器端使用它吗?
我希望我能以某种方式将它附加到我的 FormCollection,而不是一些有趣的 JS/jquery :)

我希望你能帮助我,在此先感谢 :)

4

1 回答 1

1

动作脚本 3

要在 Actionscript 3 中获取 flash 变量,您可以执行以下操作:(未经测试的代码)

var myFlashVars:Object = LoaderInfo(this.root.loaderInfo).parameters;
//To get boolean (true/false) values
var hat:Boolean = String(myFlashVars["hat"]) == "1" ? true : false;
var shoe:Boolean = String(myFlashVars["shoe"]) == "1" ? true : false;
//or, To get strings ("0"/"1")
var hatStr:String = String(myFlashVars["hat"]);
var shoeStr:String = String(myFlashVars["shoe"]);

要通过 Flash/Actionscript 3 向服务器发送数据,可以使用 URLLoader + URLRequest:

var request:URLRequest = new URLRequest("http://yoursite.com/yourpage.php");
request.data = "hat=" + hatStr + "&shoe=" + shoeStr; //

var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, callWasMade);
loader.addEventListener(IOErrorEvent.IO_ERROR, callFailedIOError);
loader.load(request);

function callWasMade(evt:Event):void{
  //Data sent, if needed you can check server response via evt.target.data
}
function callFailedIOError(evt:IOErrorEvent):void {
   //Holy crap I can't reach my server!
}

JavaScript

如果您想通过 JavaScript 访问 FlashVars 并且您正在使用:

swfobject.embedSWF(swfUrlStr,,,,,, **flashvarsObj**,,,)

正如文档中定义的那样

为什么不简单地对您的服务器进行 ajax 调用,传递您定义的 flashvarsObj。使用 jQuery,一般的想法是这样的:

$.ajax({
  url: "yourserverpage.php",
  data: flashvarsObj,
})
于 2012-02-28T15:31:39.013 回答