Чтение из flash в MVC с использованием Flashvars - PullRequest
0 голосов
/ 28 февраля 2012

Мой старый колледж сделал эту модную бумажную куклу во флэш-памяти, которую я теперь должен встраивать на веб-страницу.Я могу одеть бумажную куклу со шляпами, рубашками, обувью и т. Д.Каждый раз, когда выбирается элемент рядом с бумажной куклой, параметр FlashVars обновляется.Например, когда нажата «шляпа», с FlashVars произойдет следующее.hat0shoe0 ... ----> hat1shoe0 ...И шляпа моя будет видна на моей бумажной кукле.Есть ли способ вывести FlashVars?Так я могу использовать его на сервере?Я бы предпочел, если бы я мог каким-то образом прикрепить его к моей коллекции FormCollection вместо какой-то забавной JS / jquery :)Я надеюсь, что вы можете помочь мне, спасибо заранее:)

1 Ответ

1 голос
/ 28 февраля 2012

Actiosncript 3

Чтобы получить флэш-переменные в Actionscript 3, вы можете сделать что-то вроде: (непроверенный код)

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

Если вы хотите получить доступ к FlashVars через JavaScript и если вы используете:

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

Как определено здесь, на документах

Почему бы просто не сделать ajax-вызов на ваш сервер, передавая flashvarsObj, который вы определили. При использовании jQuery общая идея будет выглядеть примерно так:

$.ajax({
  url: "yourserverpage.php",
  data: flashvarsObj,
})
...