Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   "Открыть" пространство имен (http://www.flasher.ru/forum/showthread.php?t=172671)

StasMIX 14.12.2011 23:48

"Открыть" пространство имен
 
Вот код:

Код AS3:

public function simpleMove():void {
                        gm.insMapMngr.clearNet();
                        if (!gm.insMap.focus.chAble()) {
                                var a;
                                gm.insMapMngr.clearNet();
                                a=gm.insMapMngr.calcWay(gm.net,gm.insMap.getFocusCoord().x,gm.insMap.getFocusCoord().y);
                                gm.insMapMngr.movement(a,gm.actvOBJ.xCoord,gm.actvOBJ.yCoord);
                                gm.insMap.blockClick();
                                gm.insMapMngr.addEventListener('endOfMovement',brkAnm);
                        } else {
                                gm.crMapTsk='choice';
                        }
                        function brkAnm(e:Event) {
                                gm.insAnMngr.breakAnimation(gm.insMap.getElem(gm.actvOBJ.xCoord,gm.actvOBJ.yCoord,'OBJ').visualization.a);
                                gm.insMap.activateClick();
                                gm.crMapTsk='choice';
                        }
                }

В нем я очень часто обращаюсь к переменной gm. Можно ли как то "открыть" ее пространство имен, чтобы вместо например

Код AS3:

gm.insMap.activateClick();

Писать просто

Код AS3:

insMap.activateClick();

Заранее спасибо.

Inet_PC 14.12.2011 23:50

with (gm){insMap.activateClick();}
Но это не очень хорошо.

StasMIX 14.12.2011 23:51

Почему?

Inet_PC 15.12.2011 01:20

Не происходит проверка типов при компиляции, что просто ужасно:
Код AS3:

with(this)
{
        beginFill(0xFF0000);
        lineStyle(2, 0x00FF00);
        drawCircle(0, 0, 30);
        endFill();
}

Вот этот кусок скомпилится (по крайней мере mxmlc) и выдаст RTE.
В некоторых случаях код подобно этому выполнится без ошибок, но и сделанно ничего не будет.

expl 15.12.2011 01:37

Все гораздо проще:
Код AS3:

var insMap:InsMapType = gm.insMap;
// а тут погнали работать с insMap

И доступ через 1 точку работает быстрее чем через 2


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

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