Domanda

Ho problemi con uno script XMLSocket in AS3. Ho un server Java e sto cercando di inviare un di dati XML, ma il server non riceve nulla. Il più sorprendente è che il mio script ha funzionato molto bene un mese fa, e ora i miei IOError ascoltatore torna me:

"Errore # 2031:. Errore socket URL: 127.0.0.1 a prova () a Client_fla :: MainTimeline / frame1 () "

e il mio SecurityError ascoltatore:

"Errore # 2048: Violazione della sicurezza sandbox: file: /// C | /Documents%20and%20Settings/Zeph/Bureau/Client.swf non può caricare dati da 127.0.0.1:18000. a prova () a Client_fla :: MainTimeline / frame1 () "

Ho provato a cambiare IP, ho provato su un altro computer, ho cercato di tirare una versione precedente del mio script, che è rimasto invariato, senza alcun risultato.

non riesco proprio a capire perché ha smesso di funzionare in questo modo. Ecco il mio script:

package
{

    import flash.net.XMLSocket;
    import flash.events.*;
    import flash.display.MovieClip;

    public class test extends MovieClip 
    {

        public function test()
        {
            trace("pouet");
            var xmlsock:XMLSocket = new XMLSocket(); 
            xmlsock.connect("127.0.0.1", 18000);
            var xmlFormattedData = new XML('<message pseudo="Nix" value="Coucou !"/>'); 
            xmlsock.send(xmlFormattedData);
            xmlsock.addEventListener(DataEvent.DATA, onData);
            xmlsock.addEventListener(IOErrorEvent.IO_ERROR, ioerror);
            xmlsock.addEventListener(SecurityErrorEvent.SECURITY_ERROR, secuerror);
            xmlsock.send(xmlFormattedData);

        }

        private function onData(event:DataEvent):void 
        { 
            trace("[" + event.type + "] " + event.data); 
        }


        private function ioerror(event:IOErrorEvent):void 
        { 
        trace(event);
        }

        private function secuerror(event:SecurityErrorEvent):void 
        { 
        trace(event);
        }

    }

}

Sto diventando pazzo di questo, qualcuno ha un'idea?

Grazie per la lettura!

È stato utile?

Soluzione

l'errore suggerisce, che si esegue un'applicazione Flash dal file system locale e questa applicazione vuole fare una richiesta di rete (al server Java).

Questa non è consentita per impostazione predefinita. Si può fare una delle due cose:

  • Aggiorna il tuo Global Security Settings nel tuo lettore flash (tasto destro del mouse, impostazioni avanzate, le impostazioni di sicurezza globali, quindi impostare il file flash o l'intera cartella di poter fare richieste di rete)

  • Eseguire l'applicazione Flash da un server web (e fare in modo, che un crossdomain.xml è a posto sul server Java).

Altri suggerimenti

Per quanto il vostro errore indica, si sta verificando una violazione della sicurezza sandbox. Ciò significa che Flash non consentire che le attività da domini applicativi diversi dai propri. Ci sono fondamentalmente due correzioni, uno molto più semplice rispetto agli altri:

  1. Leggi su come creare e caricare crossdomain xml . Si tratta semplicemente di una "politica" sul server che l'applicazione Flash in esecuzione legge. Può essere difficile da configurare correttamente, ma questa è la strada generalmente accettata.

  2. Sulla le impostazioni di output, alla voce "Sicurezza riproduzione locale" si può essere in grado di controllare "file di rete di accesso", invece di "file locali di accesso unico" - e risolvere rapidamente il problema.

Speranza che aiuta!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top