Flash не может установить XMLSocket

Я только начал проект во флэш, но он не может запустить XMLSocket.

Мой код:

import Network.CommunicationBootstrap;

var network:CommunicationBootstrap = new CommunicationBootstrap();
network.start("127.0.0.1", 30000);

Пакетная сеть classs CommunicationBootstrap:

package Network {
import flash.net.XMLSocket;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;

public class CommunicationBootstrap {

    private var socket:XMLSocket = new XMLSocket();

    public function CommunicationBootstrap() {
        socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
    }

    public function start(ip:String, port:int):void {
        this.socket.connect(ip, port);

        trace("Testing this out!");
    }

    private function ioErrorHandler(event:IOErrorEvent):void {
        trace("ioErrorHandler: " + event);
    }

    private function securityErrorHandler(event:SecurityErrorEvent):void {
        trace("securityErrorHandler: " + event);
    }

}

}

Мои ошибки: ioErrorHandler: [IOErrorEvent type="ioError" bubbles=false cancellable=false eventPhase=2 text="Ошибка #2031: ошибка сокета. URL: 127.0.0.1"] securityErrorHandler: [SecurityErrorEvent type="securityError" bubbles= ложная отмена = ложная eventPhase = 2 text = "Ошибка № 2048: нарушение изолированной программной среды безопасности: файл:///C|/Users/iufrs/Documents/AS3/1/Torn.swf не может загрузить данные из 127.0.0.1:30000. "]

(получил след и 2 события)

1 ответ

Это (как подсказывает сообщение) из-за песочницы, в которой работает ваш swf.

из документов

Локальный файл описывает любой файл, на который ссылается файл file: protocol

Что ты здесь делаешь?

В дальнейшем:

Песочница с локальной файловой системой. В целях безопасности Flash Player по умолчанию помещает все локальные SWF-файлы и ресурсы в изолированную программную среду с локальной файловой системой. Из этой изолированной программной среды SWF-файлы могут читать локальные файлы (например, с помощью класса URLLoader), но они никак не могут взаимодействовать с сетью. Это гарантирует пользователю, что локальные данные не могут быть просочены в сеть или иным образом неправильно распределены

Это то, что заставляет вас видеть ошибку.

Если вы хотите, чтобы ваш SWF-файл размещался на веб-сервере, вам следует убедиться, что SWF-файл может быть загружен с вашего веб-сервера, работающего на 127.0.0.1, и вы должны загрузить его через http, например, как http://127.0.0.1/YourSwf.swf

Если вы хотите запустить sef из файловой системы, вам нужно скомпилировать его для запуска в изолированной программной среде "local-with-network", ссылка объясняет как.

,

Другие вопросы по тегам