Не работает при загрузке в вк
Добавлено: 25 сен 2014, 12:33
Добрый день! Решил протестировать своё приложение в ВК. Однако, на сайте оно не работает. Вот код
Чтобы отследить до какого момента приложение работает ввел текстовое поле txtLevel, которое выводит только "Main добавлен на сцену loadData". То есть дальше loadData, как понимаю, в ВК приложение не работает. В чем может быть причина?
Такс.. Кажись, ошибка безопасности.
Сделал так
Выдает
Security[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]
Код: Выделить всё
package { import flash.text.TextField; import Model.*; import Controller.*; import View.*; import flash.display.Sprite; import flash.events.Event; import flash.events.*; import flash.net.*; public class Main extends Sprite { private var flashVars:Object; private var mainTable:Object; private var tableOfItem:Object; private var tableOfShip:Object; private var txtLevel:TextField; public function Main() { trace("Запущен класс Main"); mainTable = new Object(); txtLevel = new TextField(); txtLevel.autoSize = "left"; txtLevel.x = 200; txtLevel.y = 200; addChild(txtLevel); addEventListener(Event.ADDED_TO_STAGE, onFlashVarsInit); } public function onFlashVarsInit(e:Event = null):void { txtLevel.text += "Main добавлен на сцену"; trace("Main добавлен на сцену"); flashVars = stage.loaderInfo.parameters as Object; if (!flashVars.api_id) { // -- Your code for local testing:flashVars['api_id'] = **************;flashVars['viewer_id'] = *******;flashVars['sid'] = "***************************";flashVars['secret'] = "***********";// -- // } if (stage) { loadData(); } else { txtLevel.text = "Fail in Main!"; trace("Fail in Main!"); } //newGame(flashVars); } private function loadData():void { txtLevel.text += " loadData "; var loader:URLLoader; var request:URLRequest; loader = new URLLoader(); request = new URLRequest('http://***.ru/Tables/itemData.json'); try { loader.load(request); loader.addEventListener(Event.COMPLETE, complete1); loader.addEventListener(IOErrorEvent.IO_ERROR, BAD_TEST); } catch(e) { txtLevel.text = String(e); } } private function complete1(e:Event):void { txtLevel.text += "complete1"; trace("Good!"); var jsonStr:String; tableOfItem = new Object(); jsonStr = e.target.data; trace("jsonStr " + jsonStr); tableOfItem = JSON.parse(jsonStr); trace("jsonObj " + tableOfItem); mainTable.tableOfItem = tableOfItem; var loader:URLLoader; var request:URLRequest; loader = new URLLoader(); request = new URLRequest('http://***.ru/Tables/shipTable.json'); loader.load(request); loader.addEventListener(Event.COMPLETE, complete2); loader.addEventListener(IOErrorEvent.IO_ERROR, BAD_TEST); } private function complete2(e:Event):void { txtLevel.text += "complete2"; ... newGame(flashVars); } private function newGame(vkData:Object):void { txtLevel.text += " Запущена функция newGame класса Main"; trace("Запущена функция newGame класса Main"); //removeEventListener(Event.ADDED_TO_STAGE, init); ... } private function BAD_TEST(e:IOErrorEvent):void { txtLevel.text += "BAD_TEST"; trace("File not found! Ошибка:" + e); } }}
Такс.. Кажись, ошибка безопасности.
Сделал так
Код: Выделить всё
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, Security);private function Security(e:SecurityErrorEvent):void { txtLevel.text = "Security" + String(e); }
Выдает
Security[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]