Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.05.2008, 16:32
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 21  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Не, Vertax, у вас глобал не отлавливает
Код:
_global.z={}
z.ss={}
trace(z+" "+z.ss)
z.ss.del()
trace(z+" "+z.ss)
Цитата:
Сообщение от Vertax Посмотреть сообщение
[code]
Недостаток в коллекцию:
Код:
a = {};
a.OBJ = "Hello";

b = {};
b.parent = _root;

a.del();
Поэтому я и не люблю рекурсию
add:
Но кажется я победил зацикливание по ссылке на другой объект:

Код:
Object.prototype.del=function(path, firstThis){
	if(arguments.caller==null){
		var parent=_root
		var firstThis=this
	} else {
		var parent=path
		var firstThis=firstThis
	}
	for (var i in parent) {
		if (parent[i]==firstThis){
			delete parent[i]
			return null			
		}
		if (typeof(parent[i])=='movieclip' || typeof(parent[i])=='object' && typeof(i)==string){
			var rez=arguments.callee(parent[i], firstThis)
			if (rez==null){
				return null
			}
		}
	}
	if(arguments.caller==null){
		for (var i in _global) {
			if (_global[i]==firstThis){
				delete _global[i]
				return null			
			}
			if (typeof(_global[i])=='movieclip' || typeof(_global[i])=='object'){
				if (arguments.callee(_global[i], firstThis)==null){
					return null
				}
			}
		}
	} else {
		return false
	}
}


Последний раз редактировалось chingachgoog; 06.05.2008 в 17:37.
Старый 06.05.2008, 21:03
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 22  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Сообщение от chingachgoog Посмотреть сообщение
В этом случае можно сказать, что и мой_мувик в коде
Код:
мой_мувик.removeMovieClip()
не удаляет сам себя а лишь отдает другому объекту (команде) киллеру ссылку на себя с призывом "вот он я, убей меня быстрее!"
Мувиклип, это визуальный объект, у него своя логика поведения, он даже не через new создается.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 07.05.2008, 10:09
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 23  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Я просто хотел сказать, что в этой логике получается, что ни один объект, включая мувиклип, себя напрямую не убивает - все равно идет обращение к команде-киллеру (встроенной или внешней). Но я всего-лишь хотел сделать аналог removeMovieClip(), но только для объектов.

Старый 07.05.2008, 10:51
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 24  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
А сделать delete для мувиклипа нет желание?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 07.05.2008, 18:34
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 25  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Объекты не должны сами себя удалять, это ошибка в дизайне...
Ну, почему... если объект мувиклип - то это, имхо, оправданно. Но мувиклип спокойно себя удаляет ( removeMovieClip() ).

Пример использования - программная анимация частиц, когда мувиклипы аттачаться на сцену и умирают, когда проигрывают свою анимацию.
__________________
Дело не в тебе

Старый 07.05.2008, 19:25
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 26  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Надеюсь бить меня никто не будет, если я напомню, что в ас2 объекты вручную вообще удалить нельзя?
Можно удалить все ссылки на него из-вне, тогда он убивается автоматически.

upd
В связи с этим все недовольства по поводу того, что вызывается delete %имя_объекта% — беспомощны.

В связи с этим максимум, что можно сделать — покрутить вариант, предложеный iNils на первой странице. Например так:
Код:
this.createObj=function (name) {
	this[name]=new Object();
        this[name]name=name;
        this[name]parent=this;
        this[name].del=function(){
            delete this.parent[this.name];
        }
}

this.createObj("obj1");
trace(this.obj1);
this.obj1.del();
trace(this.obj1);
И то - это только удалит ту ссылку, которая вернулась при создании объекта. Тоесть - мечты-мечты... Если можно обойтись без этого - нужно обходиться без этого. Ура!


Последний раз редактировалось crazyone; 07.05.2008 в 19:40.
Создать новую тему Ответ Часовой пояс GMT +4, время: 12:27.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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