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

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

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

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
По умолчанию Как объекту убить самого себя?

собственно вопрос

Старый 05.05.2008, 13:20
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Никак.

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

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Хм.
Но если очень хочется, а нельзя, то вроде можно:

Код:
zz={}
zz.test="qwerty"

trace(zz.test)
trace(zz)

zz.del=function(){
	this.death=true
	for (var i in _root) {
		if (_root[i].death){
			delete _root[i]
		}
	}
}

zz.del()



trace(zz.test)
trace(zz)

Старый 05.05.2008, 16:30
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну вы же понимаете, что это, мягко говоря, не есть решение?

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

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

Старый 05.05.2008, 18:29
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 6  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Хм.
Но если очень хочется, а нельзя, то вроде можно:
Так проще:
Код:
zz = {};
zz.kill = kill
zz.test = "qwerty";
trace(zz.test);
trace(zz);
zz.kill();
trace(zz.test);
trace(zz);
//
function kill() {
 zz={}
 delete zz
}


Последний раз редактировалось Жень Шень; 05.05.2008 в 18:31.
Старый 05.05.2008, 18:34
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 7  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
У Object-a нет команды самоликвидации.
Вы просто удаляйте всё по мере необходимости и всё:
Код:
var s:Sound = new Sound();
trace(s)
delete s;
trace(s);
Можно расширить класс, добавив св-ва и методы, а после уже наследоваться от него.
__________________
john

Старый 05.05.2008, 19:20
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 8  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Вопрос был "Как объекту убить самого себя?"
Я в примере как раз и добавил метод "самоликвидации".
Правда в функции лишняя строчка, надо так:
Код:
function kill() {
 delete zz
}

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

Регистрация: Apr 2007
Сообщений: 1,369
Жень Шень, а смысл создавать лишнее?
Если просто вызвать ф-цию:
Код:
kill();
Вместо строки:
Код:
zz.kill();
Эффект один и тот же.
Соответственно вот это:
Код:
zz.kill = kill
само собой отпадает.

Получится:
Код:
zz = {};
zz.test = "qwerty";
kill();
function kill() {
 delete zz
}
То же, что и я написал на верху.

Что бы объект убил себя, нужно что-то типа такого:
Код:
var o:Object = new Object();
o.onPress = kill;
function kill(){
this.destroyItSelf();
trace(o)// undefined;
}
__________________
john


Последний раз редактировалось Molecula; 05.05.2008 в 19:46.
Старый 05.05.2008, 19:43
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Жень Шень, есть одна проблема, в функции явно указывается имя объекта, поэтому применить его к любый объектам не получится.
Поэтому, лучше сразу задавать имя объекту
Код:
function Obj (parent, name) {
	this.parent = parent;
	this.name = name;
	this.test = "qwerty";
}
Obj.prototype.del = function () {
	delete this.parent[this.name];
};
var obj1 = new Obj (this, "obj1");
var obj2 = new Obj (this, "obj2");
_global.obj3 = obj1;
trace (obj1 + " " + obj1.test);
trace (obj2 + " " + obj2.test);
obj1.del ();
trace (obj1 + " " + obj1.test);
trace (obj2 + " " + obj2.test);
obj2.del ();
trace (obj1 + " " + obj1.test);
trace (obj2 + " " + obj2.test);
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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