![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2002
Адрес: Kazan
Сообщений: 53
|
Привет,
на сцене n дублированных мувиков. n=10; for(i=1,i<=n,i++){ dublicateMovieClip ("myMov", "myMov_" + i, i); } Удалим myMov_i. Теперь нужно чтобы myMov_10 переместился на depth 3 и поменял свое имя с myMov_10 на myMov_3. Что делаю: on (press) { unloadMovie(_root.myMov_3); } on (release) { name_to_swap = "_root.myMov_10"; name_to_swap = eval(name_to_swap); name_to_swap.swapDepths(3); new_swap = "myMov_3"; name_to_swap._name = new_swap; } конда первый раз кликаю мувик(бывший myMov_10 а теперь myMov_3), то через trace видно, что все нормально, и depth и имя мувика изменились. Но при втором клике имя остается тем же а вот depth становится 11. подскажите как сделать так чтобы depth не менялся спасибо Последний раз редактировалось mu_slim; 25.02.2004 в 12:19. |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Ну у тебя при втором клике
eval(name_to_swap)==undefined// _root.myMov_10 - не существует. Чего ж ты хочешь? Как написал, так и есть. Я так и не понял чего надо при втором клике/а третьем?/ и вообще чего надо? Чтоб скрипт срабатывал только один раз - поставь условие типа if(tttt==undefined){ работает скрипт; tttt++; } хотя это конечно элементарщина и чего тебе надо на самом деле можно только догадываться. ![]() |
|
|||||
|
Регистрация: Oct 2002
Адрес: Kazan
Сообщений: 53
|
мувики на сцену грузятся при нажатии на кнопку А (сколько раз нажмем столько и загрузится), а удаляются при нажатии на кнопку Б, которая лежит в другом мувике - Меню.
Мувики - myMov_(i) можно перетаскивать на сцене (в каждом есть кнопка а на ней Drug & Drop). Так же их можно поворачивать и удалять. Кликнув на мувик я его тем самым "выделяю", т.е передаю его адрес кнопке Б(в мувик Меню). Это делается для того чтобы кнопка знала какой именно из дублированных объектов следует удалить. В myMov_(i) как я уже говорил есть кнопка, там такой код.... on (release){ .... _root.curSelDep = this.getDepth();// _root.Menu.name_del = this;// trace("thisDep="+_root.curSelDep); trace("thisName=" +_root.Menu.name_del); .... } после удаления со сцены myMov_3 (с третьего уровня), на его место должен перейти myMov_10 (с 10-го) и изменить свое имя на myMov_3. Что происходит: 1. Удаляю, myMov_3 исчезает со сцены 2. Кликаю на myMov_10, trace показывает thisDep=3 thisName=_level0.myMov_3 3. еще раз кликаю тотже мувик(перетащить например мне его захотело сь). теперь вижу thisDep=11(????????????????) thisName=_level0.myMov_3 в чем дело не соображу =(((( |
|
|||||
|
Регистрация: Oct 2002
Адрес: Kazan
Сообщений: 53
|
инетересно а когда я имя меняю у мувика, может быть флэш его стирает а потом грузит на самый верхний уровень???
__________________
arbeit macht das lebe suB |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Цитата:
А вот зачем менять дубликатам имена и вложенность - въехать не могу.Объясни. ![]() |
|
|||||
|
Регистрация: Oct 2002
Адрес: Kazan
Сообщений: 53
|
да вот то то и оно, что это я уже сделал (немного не так как у тебя правда) и не стал бы беспокоить по пустяковым вопросам
делаю я конструктор. пользователь должен иметь возможность свободно манипулировать объектами myMov:сождавать, двигать, поворачивать и в любом порядке удалять их. (это я сделал)Дальше он переходит в другой фрейм, где мне нужно знать точное количество объектов их имена и координаты, чтобы я мог их сортировать.каждый myMove имеет переменные x, y, rotation. если он ничего не удалил со сцены то, их имена: MyMov_1
MyMov_2
MyMov_3
...
MyMov_n
//тогда не трудно создать двумерный массив массив.
for(var k=0;k<nk++){
TRI = newArray(3);
TRI[0] = _root["myMove_"+k].x;
TRI[1] = _root["myMove_"+k].y;
TRI[2] = _root["myMove_"+k].rotation;
Big_array[k] = TRI;
}
как тогда заполнить массив? Другого пути кроме как переименовать объект я не придумал пока. а при переименовании начинается чехорда с уровнями. т.е надо и переимновать и поменять уровень
__________________
arbeit macht das lebe suB |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Да также как если б не удалял, а потом его перебрать на предмет undefined. Детали щас посмотрю
|
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Глянь.
Осталось удалить пустые элементы. |
|
|||||
|
Регистрация: Oct 2002
Адрес: Kazan
Сообщений: 53
|
Спасибо за помощ, массив получился, я и не знал, что по undefined можно ставить условие типа если == undefined то ..., и вообще массивы в actionScript достаточно гибкий инструмент. Я боялся что если я попытаюсь запихнуть в массив несуществующий объект (myMov_(i) который я удалил) то он ругаться будет. а на самом деле просто undifined сказал и пошел дальше
а еще мне очень понравилась строчка я то наивный думал, что если делаешь unloadMovie, то ни мувика ни переменных в проигрывателе нет, а как видно он просто исчезает, зато trace() его замечательно видит. Большое спасибо Штрек, что ты мне взялся помоч. что-то никто больше и не откликнулся ![]()
__________________
arbeit macht das lebe suB |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Цитата:
![]() |
![]() |
Часовой пояс GMT +4, время: 15:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|