![]() |
|
||||||||||
|
|||||
|
[+1.3 20.12.10]
Регистрация: Nov 2009
Сообщений: 124
|
Такая проблема:
Пишу клиент который взаимодействует с ред5 сервером, работает все прекрасно. Понадобилось с сервера рассылать клиенту некоторую инфу. Для приема во флеше создал класс: package { import flash.net.NetConnection; public class RemoteNetConnection extends NetConnection { public function serverMessage(msg : String):void { trace(msg); } } } Данный класс вызывается из главного класса Main. Вопрос следующий: как в RemoteNetConnection вызвать функцию из Main? |
|
|||||
|
Регистрация: May 2010
Сообщений: 543
|
нужно в ваш класс передать ссылку на Main, например через сеттер. Тогда к Main можно обращаться по ссылке.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с) |
|
|||||
|
[+1.3 20.12.10]
Регистрация: Nov 2009
Сообщений: 124
|
спасибо
Добавлено через 4 минуты Ну скажем так почти получилось) создал сеттер: package { import flash.net.NetConnection; public class RemoteNetConnection extends NetConnection { public var _main:Main; public function serverMessage(msg : String):void { _main.serverMessage(msg); } public function set main(main:Main) { _main=main; } } } И создание: Получаем: RemoteNetConnection.as, строка 13 1195: Попытка вызова недоступного свойства serverMessage с помощью ссылки со статическим типом Main. Последний раз редактировалось SONce; 14.07.2011 в 15:03. |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Почему бы в RemoteNetConnection не создать явный конструктор и не передать туда мейн в качестве параметра?
|
|
|||||
|
Регистрация: May 2010
Сообщений: 543
|
Main
package { import flash.display.Sprite; import flash.events.Event; import customClass; public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); var custom:customClass = new customClass(); custom.main = this; custom.customFunction(); } public function callMe():void { trace("Its alive!"); } } } package { public class customClass { private var _main:Main; public function customClass() { } public function customFunction():void { if (this._main) { this._main.callMe(); } } public function get main():Main { return _main; } public function set main(value:Main):void { _main = value; } } }
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с) Последний раз редактировалось carrotoff; 08.08.2011 в 17:57. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|