Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   сохранение объекта в динамическое поле Object (http://www.flasher.ru/forum/showthread.php?t=155558)

jaa_breath 06.05.2011 12:42

сохранение объекта в динамическое поле Object
 
например есть кастомный компонент,
Код AS3:

class MyComp extends Group {
        var storage:Storage= Storage.getInstance();
 
        addEventListener(MouseEvent.MOUSE_DOWN, function(e:MouseEvent):void {
            var obj:Object = new Object();
            obj.who = this;
            obj.x = x;
            obj.y = y;
            storage.saveObject(obj);
        });
}

в строчке
Код AS3:

obj.who = this;

попытка сохранить в поле who, текущий инстанс, типа MyComp.
Код AS3:

saveObject

- заносит объект obj в стек(массив).

где то в другой части проджекта нужно вытащить сохраненый в who объект типа MyComp, как это делаю

Код AS3:

class Ruler {
  public function getStoredObj():void{
    var obj:Object = Storage.getInstance().getLastObject();
    Alert.show(getQualifiedClassName(obj.who as MyComp)); //выводит 'null'
    Alert.show(getQualifiedClassName(obj.who));          //выводит 'global'
    Alert.show(obj.x);                                  //тут все хорошо, видим сохраненную координату
}
}

то есть не могу вытащить сохраненый объект типа MyComp и обратиться к его полям, к полям obj(x, y) доступ есть.

спасибо.

dimarik 06.05.2011 13:09

Код AS3:

function foo():void {
 
    trace(this);
 
    function bar():void {
        trace(this);
    }
 
        bar();
}

Код:

Output:
[object Object]
[object global]

Т.о. область видимости внутри bar не принадлежит хозяину foo.

jaa_breath 07.05.2011 18:45

лечится таким образом,
Код AS3:

addEventListener(MouseEvent.MOUSE_DOWN, func);

Код AS3:

private function func(e:Event):void {
тут this доступен
}



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

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