![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2007
Сообщений: 18
|
Привет всем.
У меня возникла проблема при создания класса с использованием 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];
}
}
|
|
|||||
|
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 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; Это будет некорректно? Но там прекрасно работает. |
|
|||||
|
если пути прописываются так:class com.silin.DistortBitmap extends MovieClip, то это АС2, а в АС3 пути прописываются через package.
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 18
|
Уже все поправил.
Спасибо вам. |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 18
|
Еще раз извините. Я не хотел новую тему создать.
Как сделать флешу ждать до окончания загрузкибез каких-либо действий? Если вы помотрите на мой код, там написан 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, время: 01:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|