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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: Oct 2002
Адрес: Kazan
Сообщений: 53
По умолчанию вопрос о swapDepth

Привет,
на сцене 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.
Старый 26.02.2004, 03:36
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 2  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Ну у тебя при втором клике
eval(name_to_swap)==undefined// _root.myMov_10 -
не существует. Чего ж ты хочешь?
Как написал, так и есть.
Я так и не понял чего надо при втором клике/а третьем?/
и вообще чего надо? Чтоб скрипт срабатывал только один раз - поставь условие типа if(tttt==undefined){
работает скрипт;
tttt++;
} хотя это конечно элементарщина и чего тебе надо на самом деле можно только догадываться.

Старый 26.02.2004, 11:17
mu_slim вне форума Посмотреть профиль Отправить личное сообщение для mu_slim Найти все сообщения от mu_slim
  № 3  
mu_slim

Регистрация: 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
в чем дело не соображу =((((

Старый 26.02.2004, 11:46
mu_slim вне форума Посмотреть профиль Отправить личное сообщение для mu_slim Найти все сообщения от mu_slim
  № 4  
mu_slim

Регистрация: Oct 2002
Адрес: Kazan
Сообщений: 53
инетересно а когда я имя меняю у мувика, может быть флэш его стирает а потом грузит на самый верхний уровень???
__________________
arbeit macht das lebe suB

Старый 26.02.2004, 14:07
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 5  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
По умолчанию Re: большое спасибо за ответ, но....

Цитата:
Оригинал написал(а) mu_slim
мувики на сцену грузятся при нажатии на кнопку А (сколько раз нажмем столько и загрузится), а удаляются при нажатии на кнопку Б, которая лежит в другом мувике - Меню.
Мувики - myMov_(i) можно перетаскивать на сцене (в каждом есть кнопка а на ней Drug & Drop). Так же их можно поворачивать и удалять.
Кликнув на мувик я его тем самым "выделяю", т.е передаю его адрес кнопке Б(в мувик Меню). Это делается для того чтобы кнопка знала какой именно из дублированных объектов следует удалить.
=((((
Ну это делается достаточно элементарно/см. исх./
А вот зачем менять дубликатам имена и вложенность -
въехать не могу.Объясни.
Вложения
Тип файла: zip untitled-11.zip (2.7 Кб, 288 просмотров)

Старый 26.02.2004, 14:57
mu_slim вне форума Посмотреть профиль Отправить личное сообщение для mu_slim Найти все сообщения от mu_slim
  № 6  
mu_slim

Регистрация: 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;
}
а если он удалял:
Код:
MyMov_1
MyMov_5
MyMov_8
MyMov_9
....
MyMov_m
как тогда заполнить массив?
Другого пути кроме как переименовать объект я не придумал пока. а при переименовании начинается чехорда с уровнями.
т.е надо и переимновать и поменять уровень
__________________
arbeit macht das lebe suB

Старый 26.02.2004, 15:43
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 7  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Цитата:
Оригинал написал(а) mu_slim
а если он удалял:
Код:
MyMov_1
MyMov_5
MyMov_8
MyMov_9
....
MyMov_m
как тогда заполнить массив?
Да также как если б не удалял, а потом его перебрать на предмет undefined. Детали щас посмотрю

Старый 26.02.2004, 16:07
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 8  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Глянь.
Осталось удалить пустые элементы.
Вложения
Тип файла: zip untitled-11_22222.zip (2.8 Кб, 297 просмотров)

Старый 26.02.2004, 19:00
mu_slim вне форума Посмотреть профиль Отправить личное сообщение для mu_slim Найти все сообщения от mu_slim
  № 9  
mu_slim

Регистрация: Oct 2002
Адрес: Kazan
Сообщений: 53
Thumbs up большое спасибо

Спасибо за помощ, массив получился, я и не знал, что по undefined можно ставить условие типа если == undefined то ..., и вообще массивы в actionScript достаточно гибкий инструмент. Я боялся что если я попытаюсь запихнуть в массив несуществующий объект (myMov_(i) который я удалил) то он ругаться будет. а на самом деле просто undifined сказал и пошел дальше

а еще мне очень понравилась строчка
Код:
_root["myMov_"+jjj]._name = _root["myMov_"+jjj]._name+1000;
я то наивный думал, что если делаешь unloadMovie, то ни мувика ни переменных в проигрывателе нет, а как видно он просто исчезает, зато trace() его замечательно видит.

Большое спасибо Штрек, что ты мне взялся помоч. что-то никто больше и не откликнулся
__________________
arbeit macht das lebe suB

Старый 26.02.2004, 19:12
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 10  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
По умолчанию Re: большое спасибо

Цитата:
Оригинал написал(а) mu_slim
Большое спасибо Штрек, что ты мне взялся помоч. что-то никто больше и не откликнулся
Они по татарски не понимают.

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

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

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


 


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


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