Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Сокеты (http://www.flasher.ru/forum/showthread.php?t=188253)

client510 30.11.2012 23:53

Сокеты
 
В разделе "Серверные технологии и Flash" мне ответить не могут, по этому прошу прощение у администратора, за. что пишу не в тот раздел.
Вот какая проблема:
От сюда взял код сервера, написал свой код
Код AS3:

import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.net.XMLSocket;
import flash.events.DataEvent;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import flash.errors.IOError;
import flash.text.TextField;
 
stop();
 
var userloader:URLLoader = new URLLoader();
var userrequest:URLRequest = new URLRequest("user.xml");
    userloader.load(userrequest);
        userrequest.data;
        userloader.addEventListener(Event.COMPLETE, onUserLoad);
var xml:XML = new XML;
var userLogin:XMLList;
var userPaswurd:XMLList;
var username:Array = new Array();
var pasword:Array = new Array();
var i:int;
var j:int;
var socket:XMLSocket = new XMLSocket();
var logfile:TextField = new TextField();
 
function onUserLoad(e:Event):void
{
        xml = XML(e.target.data);
        userLogin = xml..user_login.text();
        userPaswurd = xml..user_password.text();
        for(i = 0; i < userLogin.length(); i++)
        {
                username.push(userLogin[i]);
        }
        for(j = 0; j < userPaswurd.length(); j++)
        {
                pasword.push(userPaswurd[j]);
        }
}
function myOnConnect(success) {
        if (success) {
                trace ("Connection succeeded!")
  } else {
                trace ("Connection failed!")
        }
}
 
enter_page.addEventListener(MouseEvent.CLICK, onEnter);
 
function onEnter(e:MouseEvent):void
{
        var logins:String = logins.text;
        var paswords:String = paswords.text;
        var categories:String = categories.text;
        var k:int;
        var l:int;
 
        if(logins == "" || paswords == "")
        {
                trace(enter_status.text = ("Ошибка! Не заполнены поля"));
                return;
        }
 
        for(k = 0; k < username.length; k++)
        {
                if(logins == username[k])
                {
                        for(l = 0; l < pasword.length; l++)
                {
                                if(paswords == pasword[l])
                                {
                                        socket.connect(null,2525);
                                        socket.addEventListener(Event.CONNECT, onConnects);
 
                                        if(true)
                                        {                           
                                            socket.send("test \n");
                                                socket.
                                            socket.addEventListener(DataEvent.DATA, onConnectSend);
                                            if(true)
                                            {
                                                socket.addEventListener(IOErrorEvent.IO_ERROR, onError);
                                                socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecur);
                                                    trace("Успех!");
                                                    MovieClip(this.root).gotoAndStop(1, "Монтажный кадр 6");
                                            }
                                        }
                                }
                }
                }
        }
        if(logins != username[k] || paswords != pasword[l])
        {
                trace(enter_status.text = ("Не верный логин или пароль."));
                return;
        }
}
 
function onConnects(event:Event):void
{
        logfile.appendText("\nconnectHandler: \n" + event)
        trace("Подключение к серверу: \n" + event);
}
function onConnectSend(event:DataEvent):void
{
        logfile.appendText("\nconnectHandler: \n" + event)
}
function onError(event:IOError):void
{
        trace("Обработка ошибок \n" + event);
}
function onSecur(event:Event):void
{
        trace("Получаем данные от сервера" + event);
}
reminder.addEventListener(MouseEvent.CLICK, onreminder);
 
function onreminder(e:MouseEvent):void
{
        gotoAndStop(2);
}

Все работает за исключением сокетов! Не дают покоя две ошбки
Код:

Error #1034: Ошибка типа Coercion: невозможно преобразовать flash.events::IOErrorEvent@2cc33469 в flash.errors.IOError.
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at flash.net::XMLSocket/reflectEvent()

Код:

[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: Нарушение изолированной среды: file:///E|/WebServers2/home/videochat/www/avfc%5F1%5F0.swf не может загрузить данные из :2525."]
.
Люди добрые помогите пожалуйста их исправить!

КорДум 01.12.2012 00:08

Цитата:

function onError(event:IOError):void
Внимательно прочитайте первую ошибку и замените на IOErrorEvent.

Ну а вторая ошибка - нельзя локально из обычного swf без разрешения к сокету сервера ломиться. Сервер по порту 843 (по умолчанию) должен отдавать файл политики безопасности.

mooncar 01.12.2012 00:11

В разных разделах темы дублировать не надо, извинения тут не причем. Вот ваша тема.


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

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