Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 14.09.2011, 18:24
Anton_sz вне форума Посмотреть профиль Отправить личное сообщение для Anton_sz Найти все сообщения от Anton_sz
  № 1  
Ответить с цитированием
Anton_sz

Регистрация: Sep 2011
Сообщений: 9
Attention sockets + apache + php

Приветствую. Недавно начал работать с 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. не ругайте сильно, если что не так.

Создать новую тему   Часовой пояс GMT +4, время: 14:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
actionscript , crossdomain.xml , flash , policy , sockets
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:28.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.