Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Флеш не может найти тип Event (http://www.flasher.ru/forum/showthread.php?t=97608)

MaxCmd 25.06.2007 14:51

Флеш не может найти тип Event
 
Привет всем.

У меня возникла проблема при создания класса с использованием URLLoader.
Мой класс должен загрузить(отправить) данные с сервера.
Но, при кимпиляции он выводит ощибка: Messages.as, Line 39. 1046: Type was not found or was not a compile-time constant: Event.
Код еще не готовый.
Помогите пожалуйста. Без этого я не могу тестировать.

Код:

import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.net.sendToURL;
import flash.events.*;
import flash.net.*;
import flash.utils.*;

class sp.Messages {
        public var lastMsgN = 0;
       
        private var msgLoader:URLLoader;
        private var url:String = "http://localhost/SP/messages.php";
        private var variables:URLVariables = new URLVariables();
        private var request:URLRequest;
       
        private var messages:Array = new Array();
       
        public function Messages() {
                this.msgLoader = new URLLoader();
                this.msgLoader.addEventListener(Event.COMPLETE, this.getMessages);
        }
       
        /**
                * Method, load messages from server
                *
                * @paramsessionName
                * @paramclientId
                * @parammsgId
        */
        private function loadMessages(sessionName:String, clientId:Number, msgId:Number) {
                this.request = new URLRequest("http://localhost/SP/messages.php?SessionName=" + sessionName + "&clientId=" + clientId + "&msgId=" + msgId);
                var oldMsgN:Number = this.lastMsgN;
                this.msgLoader.load(request);
                while(oldMsgN == lastMsgN) {
                       
                }
        }
       
        private function getMessages(event:Event):void {
                var txt:String = this.msgLoader.data;
                this.lastMsgN++;
                this.messages[this.lastMsgN] = txt;
        }
       
        public function sendMessage(msgCode:String, msgParams:String):void {
                this.variables.msgCode = msgCode;
                this.variables.msgParams = msgParams;
               
                var request:URLRequest = new URLRequest(url);
                request.data = this.variables;
                try {
                        sendToURL(request);
                }
                catch (e:Error) {
                        // error
                }
        }
       
        public function getMessageN(msgN:Number) {
                return this.messages[msgN];
        }
}


BigDan 25.06.2007 14:55

sp.Messages а это что? новая альтернатива package?
Код:

package sp {
 class Messges
 .....
 .....
}


MaxCmd 25.06.2007 15:18

Я на ActionScript типа новичок.
Посмотрев примеры(скачанные из сайта http://silin.fatal.ru/), я создал такой класс.
Там создан класс внутри папки. А в классе имя папки находится перед именем класса.
У них есть такой пример: в корневой папке:
com
camel.fla
camel.swf
Model.as


Внутри папки com находится папка silin. А внутри silin:
DistortBitmap.as
Fps.as
Hint.as

У этих классах написан(не объявлен пакет):
class com.silin.DistortBitmap extends MovieClip {...
class com.silin.Fps extends MovieClip{...
class com.silin.Hint{...


При импорте просто написали
import com.silin.DistortBitmap;
import com.silin.Hint;


Это будет некорректно? Но там прекрасно работает.

BigDan 25.06.2007 15:20

если пути прописываются так:class com.silin.DistortBitmap extends MovieClip, то это АС2, а в АС3 пути прописываются через package.

MaxCmd 25.06.2007 15:47

Уже все поправил.
Спасибо вам.

MaxCmd 25.06.2007 15:55

Еще раз извините. Я не хотел новую тему создать.
Как сделать флешу ждать до окончания загрузкибез каких-либо действий?
Если вы помотрите на мой код, там написан
Код:

this.msgLoader.addEventListener(Event.COMPLETE, this.getMessages);
...
var oldMsgN:Number = this.lastMsgN;
        this.msgLoader.load(request);
        while(oldMsgN == lastMsgN) {
                       
}
...
private function getMessages(event:Event):void {
        var txt:String = this.msgLoader.data;
        this.lastMsgN++;
        this.messages[this.lastMsgN] = txt;
}

Но этот код не работает(долго ждал и потом таймаут).
Как мне это сделать?
Заранее благодарю.


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

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