Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   проблема с removeMovieClip (http://www.flasher.ru/forum/showthread.php?t=128016)

sylk 28.07.2009 14:53

проблема с 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"???

Xero201 28.07.2009 23:24

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

KiL33 29.07.2009 05:45

При расположении компонентов в проекте строка this.getNextHighestDepth() поднимает ваши мувики за предельный уровень, с которого removeMovieClip не может удалять.

aksios 29.07.2009 10:20

Цитата:

после того как отрабатывает remove()
А где это в коде?

KiL33 29.07.2009 10:26

видимо здесь
Код:

function remove() {
        removeMovieClip(this._parent.dates);
}


aksios 29.07.2009 10:53

Она "не отрабатывает", поскольку только декларация–можно отрейсить.
А вот если поправить:
Код AS1/AS2:

remove();
function remove():Void {....

- Вот так функция будет выполняться.

KiL33 29.07.2009 10:59

в любом случае removeMovieClip будет молчать.

aksios 29.07.2009 11:08

Из чего это следует?

KiL33 29.07.2009 11:11

ну во-первых
Цитата:

// Create dateChoose ComboBox
во вторых
Код:

duplicate = this.container.duplicateMovieClip("dates", this.getNextHighestDepth(), {_y:50});

aksios 29.07.2009 11:23

Первое к теме не относиться, второе - там новое имя пропущено, а так не вижу проблем. Если автор пишет, что удаляется, значит, удаляется. другое дело, что сама по себе функция remove() не вызывается. По моему, об этом и был вопрос.


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

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