我的一所旧学院用闪光灯制作了这个花哨的纸盒,我现在必须将其嵌入网页。我可以用帽子,衬衫,鞋子等来装饰纸娃娃。
每次选择文件夹旁边的项目时,FlashVars参数都会更新。
例如,当按下“帽子”时,FlashVars将发生以下情况。
hat0shoe0 ... ----> hat1shoe0 ...
我的纸上会看到帽子。
有没有办法让FlashVars出来?所以我可以在服务器端使用它?
我更喜欢,如果我能以某种方式将它附加到我的FormCollection,而不是一些funcy JS / jquery :)
我希望你能帮助我,提前谢谢:)
答案 0 :(得分:1)
Actiosncript 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**,,,)
按照定义here on the docs
为什么不简单地对服务器进行ajax调用,传递你定义的flashvarsObj。使用jQuery,一般的想法是这样的:
$.ajax({
url: "yourserverpage.php",
data: flashvarsObj,
})