|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Sep 2011
Сообщений: 366
|
Перешёл на ООП не могу понять в чём ошибка
Не работает класс выдаёт кучу ошибок типо таких 1180: Call to a possibly undefined method URLRequest.
1120: Access of undefined property URLRequestMethod. но я же объявил переменные requestmes и loader а он пишет что нет, что за фигня? package { import flash.display.MovieClip; import flash.net.URLVariables; public class Move { public var requestmes:URLRequest; public var loader:URLLoader ; public static function sendData(vars:URLVariables,url:String) { requestmes = new URLRequest; requestmes.url = url; requestmes.method = URLRequestMethod.POST; requestmes.data = vars; loader= new URLLoader(); loader.dataFormat = URLLoaderDataFormat.TEXT; loader.load(requestmes); return loader.data; } } } |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
В статических методах могут использоваться только статические свойства или свойства объявленные локально.
|
|
|||||
Регистрация: Sep 2011
Сообщений: 366
|
ага всё разобрался, терь другая запара, не могу додуматься как сделать статический метод для получения данных
package { import flash.display.MovieClip; import flash.net.*; import flash.events.Event; public class Move extends MovieClip { public static var requestmes:URLRequest; public static var loader:URLLoader ; public static var resp:XML; public static function sendData(vars:URLVariables,url:String) { requestmes = new URLRequest; requestmes.url = url; requestmes.method = URLRequestMethod.POST; requestmes.data = vars; loader= new URLLoader(); loader.dataFormat = URLLoaderDataFormat.TEXT; loader.addEventListener(Event.COMPLETE, onLoad); loader.load(requestmes); function onLoad (e:Event){ resp = XML(e.target.data); trace(resp); } return resp; } } } |
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
передавать в параметрах функции sendData - функцию, в которую нужно передать ответ
как-то так public static function sendData(vars:URLVariables,url:String,callBack:Function):void { requestmes = new URLRequest; requestmes.url = url; requestmes.method = URLRequestMethod.POST; requestmes.data = vars; loader= new URLLoader(); loader.dataFormat = URLLoaderDataFormat.TEXT; loader.addEventListener(Event.COMPLETE, onLoad); loader.load(requestmes); function onLoad (e:Event){ resp = XML(e.target.data); trace(resp); callBack(resp); } } |
|
|||||
Регистрация: Sep 2011
Сообщений: 366
|
хорошо, тогда как реализовать такой код без вложенных функций?
|
|
|||||
package { import flash.display.MovieClip; import flash.net.*; import flash.events.Event; public class Move extends MovieClip { public static var requestmes:URLRequest; public static var loader:URLLoader; public static var resp:XML; public static function sendData(vars:URLVariables,url:String) { requestmes = new URLRequest ; requestmes.url = url; requestmes.method = URLRequestMethod.POST; requestmes.data = vars; loader= new URLLoader(); loader.dataFormat = URLLoaderDataFormat.TEXT; loader.addEventListener(Event.COMPLETE, onLoad); loader.load(requestmes); return resp; } private static function onLoad(e:Event) { resp = XML(e.target.data); trace(resp); } } } Да, кстати, я так и не понял, зачем Цитата:
|
|
|||||
Регистрация: Sep 2011
Сообщений: 366
|
экстендс мувиклип эт видать ненужно просто пробовал х)
ну и как в вашем примере вызывать эту функцию? потомутчо return resp; - работать не будет |
|
|||||
Цитата:
А всё остальное Isfet правильно сказал. package { import flash.display.MovieClip; import flash.net.*; import flash.events.Event; public class Move extends MovieClip { public static var requestmes:URLRequest; public static var loader:URLLoader; public static var resp:XML; private static var callBack:Function; public static function sendData(vars:URLVariables,url:String, responseFunction:Function) { requestmes = new URLRequest ; requestmes.url = url; requestmes.method = URLRequestMethod.POST; requestmes.data = vars; loader= new URLLoader(); loader.dataFormat = URLLoaderDataFormat.TEXT; loader.addEventListener(Event.COMPLETE, onLoad); loader.load(requestmes); callBack = responseFunction; } private static function onLoad(e:Event) { resp = XML(e.target.data); trace(resp); callBack(resp); } } } И ещё, я бы вам советовал придержаться правильного стиля написания, и все переменные обьявлять как private, а там где они действительно нужны снаружи класса, либо получать через гет-методы(getName, getValue), или через геттеры, ну или на крайняк уже открыть в internal/public. |
Часовой пояс GMT +4, время: 19:54. |
|
« Предыдущая тема | Следующая тема » |
|
|