![]() |
|
||||||||||
|
|||||
|
Цитата:
Как удалять будем? =)
__________________
...вселенская грусть Последний раз редактировалось gloomyBrain; 31.08.2018 в 19:43. |
|
|||||
|
Lorem ipsum
|
Классный у тебя get — типа void
![]() А удаляется запросто: package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; public class Main extends Sprite { private var lh:LinkHolder; private var someObj:Object; 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); // entry point this.someObj = { 'test':'go' }; this.lh = new LinkHolder(this.someObj); stage.addEventListener(MouseEvent.CLICK, this.onClickHandler); } private function onClickHandler(e:MouseEvent):void { this.lh = null; // запускаем GC и наблюдаем исчезновение // экземпляра LinkHolder } } }
__________________
Поймай яблоко 2! |
|
|||||
|
Lorem ipsum
|
хм. а зачем это делать?
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
package { /** * ... * @author gloomyBrain * @mail CartoonRaccoon@gmail.com */ public class LinkHolder { private var _link:Object; public function LinkHolder(link:Object) { this._link = link; } public function destroy():void { this._link = null; } public function get link():Object { return this._link; } } } |
|
|||||
|
Lorem ipsum
|
Конечно с подвохом ))) нафиг нужен класс с названием "holder", который должен верно хранить ссылку на объект, который мы у него за спиной хотим прибрать с помощью GC (дзявальски хихикая под покровом ночи)
__________________
Поймай яблоко 2! |
|
|||||
|
Lorem ipsum
|
если просто null-нуть ссылки на оба экземпляра (в любом порядке) — все исчезает по GC.
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
С тем же успехом можно свой IDestroyable написать и смысл не изменится. Буди что со экранными объектами автоматизировано их рекурсивное удаление из дисплейлиста и вызов в каждом destroy - так тоже, писать метод 5 минут. Но все остальные переменные класса все равно ручками занулять в destroy нужно. |
|
|||||
|
Регистрация: Dec 2006
Адрес: Novosibirsk
Сообщений: 93
|
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|