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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.02.2009, 18:03
maxi_2704 вне форума Посмотреть профиль Отправить личное сообщение для maxi_2704 Найти все сообщения от maxi_2704
  № 1  
Ответить с цитированием
maxi_2704
[+4 24.01.09]

Регистрация: Jan 2009
Сообщений: 25
Question работа с виртуальными слоями

создаём кучу мувиков следующим образом (см. ниже) в рабочей области, далее над кликнутым мувиком можно поработать, масштабировать, вращать и т.д. Сложность возникла с виртуальными слоями. Цели следующие:
1. чтобы при клике на btn_position_down мувик просто уходил на низший слой, а при клике на btn_position_up мувик становился на передний план.
или
2. чтобы при клике на btn_position_down мувик спускался на 1 слой ниже, а при клике на btn_position_up мувик поднимался на 1 слой выше

на правильном ли я пути вообще, может подскажет кто??? Заранее благодарен

Код AS1/AS2:
 var i:Number=0;
       currentThumb.onRelease = function(){
       while (image_mc_2.getInstanceAtDepth(i) != undefined) {
       i++;
       }
       currentImage = image_mc_2.createEmptyMovieClip("imagenail"+i,i);
       var mclListener:Object = new Object();
       mclListener.onLoadInit = function(target_mc:MovieClip) {
       target_mc.onPress = function() {
       this.startDrag();
       /////////////
       btn_scale_plus.onRelease = function() {
       target_mc._xscale = target_mc._yscale += 1;
       }
       btn_scale_minus.onRelease = function() {
       target_mc._xscale = target_mc._yscale -= 1;
       }
       btn_rotate_left.onRelease = function() {
       target_mc._rotation-= 1;
       }
       btn_rotate_right.onRelease = function() {
       target_mc._rotation+= 1;
       }
       btn_delete.onRelease = function() {
       target_mc.removeMovieClip();
       }
       btn_position_down.onRelease = function() {
       //что здесь делать???
       target_mc.swapDepths();
       trace(target_mc.getDepth());
       }
       btn_position_up.onRelease = function() {
       //что здесь делать???
       target_mc.swapDepths();
       trace(target_mc.getDepth());
       }
       //////////////
       }
       target_mc.onRelease = function() {
       his.stopDrag();
       }
       trace(target_mc.getDepth());
       }
       var image_mcl:MovieClipLoader = new MovieClipLoader();
       image_mcl.addListener(mclListener);
       image_mcl.loadClip(baseurl + this.IMAGE, currentImage);
       }

Старый 19.02.2009, 23:48
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
swapDepth( а тут номер глубины на которую надо запихнуть или клип, с которым надо поменять местами по глубине)
__________________
...вселенская грусть

Старый 20.02.2009, 00:46
maxi_2704 вне форума Посмотреть профиль Отправить личное сообщение для maxi_2704 Найти все сообщения от maxi_2704
  № 3  
Ответить с цитированием
maxi_2704
[+4 24.01.09]

Регистрация: Jan 2009
Сообщений: 25
да я понимаю, что номер глубины )))
вот только глубины постоянно меняются, может подгрузиться ещё мувик,может удалиться,можно его переместить назад, вперёд, короче нужна система, как за этим всем уследить.

Старый 20.02.2009, 01:06
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Ищите глубину залегания следующего мувика перебором глубин. Вниз, к нулю: depth от this.currentMC.getDepth() - 1 до 0. Вверх, до высочайшего мувика: depth от this.currentMC.getDepth() + 1 до this.getNextHighestDepth(). Нашли глубину? Делайте this.currentMC.swapDepths(depth);
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Создайте массив
запихивайте туда все мувики
при удалении мувика - стирайте элемент массива. При добавлении - записывайте
а дальше - можно пройтись по массиву циклом и сделать примерно вот так:
Код AS1/AS2:
array[i].swapDepth(i)
то есть поставить мувик на ту глубину, которая равна его месту в массиве

ЗЫ
это дает неплохие возможности для сортировки порядка отображения мувиков в зависимости от их свойств.
то есть, например, задаем мувику новое свойство:
Код AS1/AS2:
exampleMC_0.pictureName = "PINK - stupid girl"
exampleMC_1.pictureName = "flasher.ru - gloomyBrain rules"
exampleMC_2.pictureName = "jet - skin and bones"
после чего с помощью Array.sortOn("pictureName" ...) поменять мувики местами в массиве, а затем с помощью цикла - и на сцене в соответствии с определенным свойством

ЗЗЫ
во время удаления мувика со сцены и из массива, делайте это так, чтобы не оставалось "дырок", то есть нулевых элементов
__________________
...вселенская грусть

Старый 20.02.2009, 05:43
maxi_2704 вне форума Посмотреть профиль Отправить личное сообщение для maxi_2704 Найти все сообщения от maxi_2704
  № 6  
Ответить с цитированием
maxi_2704
[+4 24.01.09]

Регистрация: Jan 2009
Сообщений: 25
всем огромное спасибо, сложновато всё получается, ограничюсь пока этим:

1. чтобы при клике на btn_position_down мувик просто уходил на низший слой, а при клике на btn_position_up мувик становился на передний план.

Помогли mx.behaviors.DepthControl.sendToBack(this);
и mx.behaviors.DepthControl.bringToFront(this);

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

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

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


 


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


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