Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   отловить RefernceError вызванный с серверсайда (http://www.flasher.ru/forum/showthread.php?t=172003)

3p.station 29.11.2011 19:14

отловить RefernceError вызванный с серверсайда
 
юзаю ФМС. Нужно словить сообщение об ReferenceError которое возникает в случае если сервер попытался вызвать отсутствующий метод в классе. Если бы в коде надо было перехватить подобное то делается так
Код AS3:

public function ReferenceErrorExample() {
          try {
              this["someMember"] = true;
          }
          catch(e:ReferenceError) {
              trace(e);
          }
      }

но тут дело в том что я не дергаю этот метод а делает это сервер.
я вот и думаю куда и какой обработчик повесить чтобы хендлить это

Kidd002 29.11.2011 19:54

Модно сделать так чтобы сервер общался с флешкой через функцию callFunction:
Код AS3:

public function callFunction(functionName:String, ...args):void
{
    try
    {
        (this[functionName] as Function).apply(this, args);
    }
    catch(e:Error) {
        trace(e);
    }
}


3p.station 29.11.2011 21:24

задачу это не решает но для общей функциональности годится. спасибо

Kidd002 30.11.2011 02:38

Можно сделать через Proxy:
Код AS3:

package
{
        import flash.utils.flash_proxy;
        import flash.utils.Proxy;
 
        internal class BaseNetConnectionClient extends Proxy
        {
                override flash_proxy function callProperty(name:*, ...rest):*
                {
                        //Вызывается при попытке запустись неусущесвующую функцию-член с именем name
                }
        }
}

NetConnection.client должен ссылаться на экземпляр наследника этого класса.

3p.station 30.11.2011 15:31

круто спасибо


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

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