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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.07.2009, 14:53
sylk вне форума Посмотреть профиль Отправить личное сообщение для sylk Найти все сообщения от sylk
  № 1  
Ответить с цитированием
sylk

Регистрация: Jul 2009
Сообщений: 15
По умолчанию проблема с removeMovieClip

после того как отрабатывает remove(), MovieClip "dates" не удаляется, а удаляется он только после завершения cbListener.change = function(evt_obj:Object).
Код AS1/AS2:
// Create dateChoose ComboBox
this.createClassObject(mx.controls.ComboBox,"dateChoose",this.getNextHighestDepth(),{_y:10, _x:120});
dateChoose.addItem("Hoy");
dateChoose.addItem("Dia");
dateChoose.addItem("Period");
// Create container:MovieClip for Dates
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
// Create listener object.
var cbListener:Object = new Object();
var dfFListener:Object = new Object();
var dfTListener:Object = new Object();
// dateChoose.change 
cbListener.change = function(evt_obj:Object) {
	var depth:Number = dates.getDepth();
	remove();
	// Add dfF and dfT to duplicated MovieClip "dates"
	if (dateChoose.value == "Dia") {
		duplicateDates();
		dates.createClassObject(mx.controls.DateField,"dfF",0,{_x:0});
		dates._x = 120;
		dates._y = 50;
		// Add listener objects to dfF DateField
		dates.dfF.addEventListener("change",dfFListener);
	}
	if (dateChoose.value == "Period") {
		duplicateDates();
		dates.createClassObject(mx.controls.DateField,"dfF",0,{_x:0});
		dates.createClassObject(mx.controls.DateField,"dfT",1,{_x:110});
		dates._x = 60;
		dates._y = 50;
		// Add listener objects to dfF and dfT DateFields
		dates.dfF.addEventListener("change",dfFListener);
		dates.dfT.addEventListener("change",dfTListener);
	}
};
// dates.dfF.change 
dfFListener.change = function(evt_obj:Object) {
	trace(dates.dfF.selectedDate);
};
// dates.dfT.change 
dfTListener.change = function(evt_obj:Object) {
	trace(dates.dfT.selectedDate);
};
// Add listener object to dateChoose ComboBox
dateChoose.addEventListener("change",cbListener);
 
function remove() {
	removeMovieClip(this._parent.dates);
}
function duplicateDates() {
	var duplicate:MovieClip;
	duplicate = this.container.duplicateMovieClip("dates", this.getNextHighestDepth(), {_y:50});
}
что не так?

и ещё один вопрос! как сделать так, чтобы ComboBox был сверху MovieClip "dates"???

Старый 28.07.2009, 23:24
  № 2  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Загляни в хэлп (ActionScript classes > MovieClip > removeMovieClip (MovieClip.removeMovieClip method)
Там что-то говорится про удаление клипов, содержащих компоненты.
Может поможет, а может и нет.

Старый 29.07.2009, 05:45
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 3  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
При расположении компонентов в проекте строка this.getNextHighestDepth() поднимает ваши мувики за предельный уровень, с которого removeMovieClip не может удалять.

Старый 29.07.2009, 10:20
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 4  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Цитата:
после того как отрабатывает remove()
А где это в коде?

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
видимо здесь
Код:
function remove() {
	removeMovieClip(this._parent.dates);
}

Старый 29.07.2009, 10:53
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 6  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Она "не отрабатывает", поскольку только декларация–можно отрейсить.
А вот если поправить:
Код AS1/AS2:
remove();
function remove():Void {....
- Вот так функция будет выполняться.

Старый 29.07.2009, 10:59
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 7  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
в любом случае removeMovieClip будет молчать.

Старый 29.07.2009, 11:08
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 8  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Из чего это следует?

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
ну во-первых
Цитата:
// Create dateChoose ComboBox
во вторых
Код:
duplicate = this.container.duplicateMovieClip("dates", this.getNextHighestDepth(), {_y:50});

Старый 29.07.2009, 11:23
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 10  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Первое к теме не относиться, второе - там новое имя пропущено, а так не вижу проблем. Если автор пишет, что удаляется, значит, удаляется. другое дело, что сама по себе функция remove() не вызывается. По моему, об этом и был вопрос.

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

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

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


 


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


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