Приветствую. Недавно начал работать с as3 и не могу решить одну задачу:
Нужно из flash передать данные для php скрипта и получить от него ответ, причем сделать это нужно через socket. Причем флешка будет грузиться на одном домене, а скрипт будет находиться на другом.
Вот код as3
Код AS3:
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TextEvent;
import flash.net.Socket;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.events.ProgressEvent;
import flash.system.Security;
public class Main extends Sprite
{
private var mySocket:Socket;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
var field:TextField = new TextField();
field.border = true;
field.x = 10;
field.y = 10;
field.borderColor = 0xCCC;
field.width = 780;
field.height = 580;
field.type = TextFieldType.DYNAMIC;
addChild(field);
mySocket = new Socket();
mySocket.addEventListener(Event.CONNECT, onConnect);
function onConnect(success:Event):void {
if (success) {
field.appendText("Server connection established!\n");
} else {
field.appendText("Server connection failed!");
}
};
mySocket.addEventListener(ProgressEvent.SOCKET_DATA, onData);
function onData(event:ProgressEvent):void {
field.appendText(mySocket.readUTFBytes(mySocket.bytesAvailable));
};
Security.loadPolicyFile("socket://localhost:80");
mySocket.connect("localhost", 80);
var str:String;
str += "GET /index.php?test=text HTTP/1.0\r\n";
str += "Host:localhost\r\n";
str += "User-Agent:Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2\r\n";
str += "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
str += "Accept-Language:ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
str += "Accept-Encoding:gzip, deflate\r\n";
str += "Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
str += "Connection:keep-alive\r\n\r\n";
mySocket.writeUTFBytes(str);
}
Локально все работает. Но когда запускаю флешку с другого домена то не робит.
Вот файл crossdomain.xml:
Код:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="*" to-ports="80,8080" />
</cross-domain-policy>
Скрипт пхп работает правильно, к нему вопросов нет.
Помогите найти ошибку.
P.S. я новичок в as3. не ругайте сильно, если что не так.