Форум 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=185074)

wisconsin 04.10.2012 13:30

Как обратиться к объекту на которого нет ссылок
 
Как обратиться к объекту на которого нет ссылок?

Aquahawk 04.10.2012 13:31

Это как? Он есть на экране? Откуда вы знаете что он вообще есть?

wisconsin 04.10.2012 13:40

Код AS3:

var placeX:int = 0;
 
for (var i:int = 0; i < 5; i++)
{
      cellSprite = new mySprite();
      cellSprite.x = placeX;
 
      addChild(mySprite);
 
      placeX += 10;
}


Krusty 04.10.2012 13:43

ну, если он добавлен addChild, то может быть получен через getChild, очевидно.
Имена методов как бы намекают

wisconsin 04.10.2012 13:51

Цитата:

Сообщение от Krusty (Сообщение 1098455)
ну, если он добавлен addChild, то может быть получен через getChild, очевидно.
Имена методов как бы намекают

да неудачны пример, забыл про глубину отображения

приведу другой пример:
Код AS3:

new myObject();

что в этом случае?

УПД.

хотя и в первом коде плодятся объекты с перекрытыми ссылками

caseyryan 04.10.2012 13:53

Цитата:

Сообщение от wisconsin (Сообщение 1098454)
Код AS3:

var placeX:int = 0;
 
for (var i:int = 0; i < 5; i++)
{
      cellSprite = new mySprite();
      cellSprite.x = placeX;
 
      addChild(mySprite);
 
      placeX += 10;
}


Что это? Этот код не будет работать вообще.
Невозможно добавить в дисплей лист класс.

wisconsin 04.10.2012 13:59

Цитата:

Сообщение от caseyryan (Сообщение 1098458)
Что это? Этот код не будет работать вообще.
Невозможно добавить в дисплей лист класс.

не совсем понял суть


может быть
Код AS3:

var cellSprite:Sprite;
...
var myMap:Sprite = new Sprite();
...
myMap.addChild(mySprite);


spooner 04.10.2012 14:03

Зачем вы умышленно теряете ссылку на объект, если он вам нужен будет в будущем?
Если ссылок на объект не останется, то его GC съест.
Если объект добавлен в список отображения, то на него есть ссылка, которую можно получить через getChild и иже с ним, как уже выше было упомянуто.

PainKiller 04.10.2012 14:05

если на объект нет ссылок, он будет удален сборщиком мусора, и никак к нему обратиться нельзя. Если объект добавлен на сцену, а ссылок на него нет - getChildAt ()

Krusty 04.10.2012 14:06

Код у вас совершенно неверный, caseyryan правильно заметил. Добавляется объект.
Если объект добавлен через addChild, то на него есть ссылка, и его можно получить. add/get
Если на объект нету ссылок, то объект будет убран через некоторое время сборщиком мусора.

Добавлено через 44 секунды
Цитата:

Сообщение от PainKiller (Сообщение 1098462)
Если объект добавлен на сцену, а ссылок на него нет - getChildAt ()

Если объект добавлен на сцену, то на него уже есть ссылка, по определению :)


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

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