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

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

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

Регистрация: Sep 2009
Сообщений: 12
По умолчанию снова про swapDepth

Здравствуйте всем,

есть проект, суть которого в том, что имеется несколько бегунков, которые перемещаются по горизонтали. Причем при перетаскивании определенного бегунка он должен выходить на передний план, перекрывая все остальные. Для этого создаю динамически несколько клипов-контейнеров, в которых есть свои дочерние клипы

Код AS1/AS2:
ItemClip[i] = _root.createEmptyMovieClip ("_item." + i.toString(), _root.getNextHighestDepth());
ItemImage[i] = ItemClip[i].createEmptyMovieClip ("_image." + i.toString(), ItemClip[i].getNextHighestDepth());
Далее, к каждому клипу привязываю событие drag_drop, в котором выполняю следующий код
Код AS1/AS2:
this.swapDepths(_root.getNextHighestDepth());
Но смены глубины не происходит и последний клип всегда остается выше остальных. Как можно еще решить проблему?

Спасибо!

Старый 03.12.2009, 12:42
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
1. Потрейсите значение уровней.
2. Приведите полный код, вот это:
"к каждому клипу привязываю событие drag_drop" ничего не проясняет.
Что значит "привязываю", что за событие drag_drop - загадка.

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

Регистрация: May 2007
Адрес: Moskow
Сообщений: 47
Отправить сообщение для TihelpER с помощью ICQ
Покажи весь код целиком. Не очевидно на какой клип ты вешаешь событие и куда будет ссылаться this.

Старый 03.12.2009, 12:52
a_web вне форума Посмотреть профиль Отправить личное сообщение для a_web Найти все сообщения от a_web
  № 4  
Ответить с цитированием
a_web

Регистрация: Sep 2009
Сообщений: 12
Инициализация ролика

Код AS1/AS2:
//Инициализируем вопрос
function InitQuestion(ScaleUrl:String, ItemUrl:String)
{
	Params = new InitialPars(ScaleUrl, ItemUrl);
 
	//Вставляем линейку
	if (Params.ScaleUrl != "")
	{		
		//делаем клип
		var ScaleMCL:MovieClipLoader = new MovieClipLoader();
		var ScaleCompleteListener:Object = new Object();
 
		ScaleMCL.addListener(ScaleCompleteListener);
		ScaleCompleteListener.onLoadInit = 
			function (SrcClip)
			{
				SrcClip._x = 0;
				SrcClip._y = DocumentHeight - SrcClip._height;
			}
 
		ScaleClip = _root.createEmptyMovieClip ("_scale", _root.getNextHighestDepth());
		ScaleMCL.loadClip(ScaleUrl, ScaleClip);
	}
 
	len = Params.Items.length;
	ItemClip = new Array(len);
	ValueOut = new Array(len);
	var ItemImage:Array = new Array(len);
 
	//Собираем ползунки
	for (i = 0; i < len; i++)
	{
		var ItemMCL:MovieClipLoader = new MovieClipLoader();
		var ItemCompleteListener:Object = new Object();
 
		ItemMCL.addListener(ItemCompleteListener);
		ItemCompleteListener.onLoadInit = 
			function (SrcClip)
			{
				id = SrcClip._name.split(".")[1];
 
				SrcClip._parent.height = (SrcClip._height + 40) * 2;
				SrcClip._y = (SrcClip._height + 40) / 2;
				PointerClip = SrcClip._parent.attachMovie("pointer", "_pointer", SrcClip._parent.getNextHighestDepth());
				PointerClip._x = (SrcClip._width / 2) - 10;
				PointerClip._y = SrcClip._y + SrcClip._height;
 
				SrcClip._parent._y = DocumentHeight - (ScaleClip == null ? 0 : ScaleClip._height) - (SrcClip._parent.height * 0.75) - Params.Removal;
				dragAndDrop(SrcClip._parent, SrcClip._parent._y, 71, parseInt(id));
			}
 
		ItemClip[i] = _root.createEmptyMovieClip ("_item." + i.toString(), _root.getNextHighestDepth());
		ItemImage[i] = ItemClip[i].createEmptyMovieClip ("_image." + i.toString(), ItemClip[i].getNextHighestDepth());
 
		ItemMCL.loadClip(Params.Items[i], ItemImage[i]);
	}
 
}
событие перетаскивания
Код AS1/AS2:
function dragAndDrop(clip:MovieClip, initY, initDelta, index):Void
{
	clip.onPress = 
		function()
		{
			var oldX = this._x;
			var newX = oldX;
			var oldY = initY;
			var newY = oldY;
 
 
			this.swapDepths(_root.getNextHighestDepth());
			...
		}
	...
}

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

Регистрация: May 2007
Адрес: Moskow
Сообщений: 47
Отправить сообщение для TihelpER с помощью ICQ
На первый взгляд должно работать.
Посмотри внутри функции dragAndDrop трэйсы:
Код AS1/AS2:
// Место и уровень клипа до попытки поднять
trace("mc: " + this + "; depth: " + this.getDepth() + "; next depth: " + _root.getNextHighestDepth())
this.swapDepths(_root.getNextHighestDepth());
// Место и уровень клипа после попытки
trace("mc: " + this + "; depth: " + this.getDepth() + "; next depth: " + _root.getNextHighestDepth() + "\n -------")

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

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

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


 


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


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