Torquise
Сообщений: 1
Оценки: 0
Присоединился: 2007-07-22 02:04:09.230000
|
В общем есть сайт, на нем flash игра. Скачал swf, декомпилировал его с помощью Sothink SWF Decompiler. В Action Script, нашел функцию которая отправляет результат игры на сервер. Дописал строчку: gameScore = 377; Далее текст функции:
function sendResult()
{
previousLogin = userLogin_txt.text;
previousPass = userPass_txt.text;
gameScore = 377;
resultToSend = gameEndStr + "^^^" + gameScore + "^^^" + main_mc.end_mc.userLogin_txt.text + "^^^" + main_mc.end_mc.userPass_txt.text;
var _loc1 = new LoadVars();
var _loc2 = new base64();
_loc1.key = _loc2.encode(escape(resultToSend));
_loc1.send(linkpostfix + "play/rating/", "_self", "POST");
} // End of the function
Внимание следует обратить на строку: _loc1.send(linkpostfix + "play/rating/", "_self", "POST"); Далее компилирую, играю. В конце независимо от того сколько очков я набрал, счет становится 377(в соответствии с моим исправлением). Сохраняю счет при этом в браузере открывается url: file://localhost/D:/…/undefinedplay/rating/?key=MjAwNyUyRDA2JTJEMjIlMjAwMSUzQTIwJTNBMzAlNUUlNUUlNUUzNzclNUUlNUUlNUV2YXN5YSU1RSU1RSU1RXB5cGtpbg%3D%3D Подставляю вместо file://localhost/D:/…/undefined url сайта http://www.di…re.by/ с которого была скачана флешка. Открывается таблица с результатами, но моего результата там нет.[sm=ac.gif] Вычитал в справке Macromedia Flash 8: quote:
send(url:String, target:String, [method:String]) : Boolean … The send() method is useful if you want the server response to: Replace the SWF content (use "_self" as the target parameter); … The Flash test environment always uses the GET method. To test using the POST method, be sure you are attempting to use it from within a browser. When using this method, consider the Flash Player security model: For Flash Player 8, the method is not allowed if the calling SWF file is in an untrusted local sandbox. For Flash Player 7 and later, the method is not allowed if the calling SWF file is a local file. т.е. как я понял метод POST запрещен в целях безопасности самим Flash Player-ом если swf файл - это файл находящийся на локальном диске. Я считаю что скорее всего проблема в том что исполняемый swf - локальный файл. Может кто-нибудь знает как это обойти. Так как ActionScript и способы взаимодействия swf с сервером мне особо незнакомы, то может кто-нибудь поможет или объяснит мне. Или я движусь в неправильном направлении? Может стоит перехватить пакеты отправляемые браузером на сайт при сохранении результатов, а затем на их основе, имея код Action Script, сформировать нужный пакет.
|