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

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

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

Регистрация: Dec 2008
Адрес: Германия
Сообщений: 78
Отправить сообщение для Sajaxt с помощью ICQ Отправить сообщение для Sajaxt с помощью Skype™
По умолчанию Не присваивается нужная глубина кнопке.

Доброе время суток!

Я решил сделать менюшку напоминающую смену окон в висте.
Несколько кнопок, которые прячутся друг за дружкой, при нажатии на любую они меняются местами по кругу(в дальнейшем это должно будет происходить при вращении колёсика мышки...).
Меняются координаты и размеры в соответствии с положением кнопки, а также глубина кнопок, дабы они правильно друг дружку перекрывали.
Всё вродебы работает, НО кнопка с именем "b4" всегда находится поверх двух соседних, в то время как все остальные меняют свою шлуюину правильно.
Люди помогите плз не могу найти что я не так делаю.
Вот код плюс сам файл:

Код AS1/AS2:
for(var i=0;i<5;i++){
	this["b"+i]._alpha=50+10*(i+1);
}
//--------------------------------------------------------------------------------
var xx:Array = new Array(this.b0._x,this.b1._x,this.b2._x,this.b3._x,this.b4._x); // массив с координатам x
var yy:Array = new Array(this.b0._y,this.b1._y,this.b2._y,this.b3._y,this.b4._y); // массив с координатам y
var dep:Array = new Array(this.b0.getDepth(),this.b1.getDepth(),this.b2.getDepth(),this.b3.getDepth(),this.b4.getDepth());
// массив с глубинами кнопок
var mcs:Array = new Array("b0","b1","b2","b3","b4"); // массив с названиями кнопок
var mcs_:Array = new Array(); // массив с перемещёнными названиями кнопок
var z = 0; // количество перемещённых названий
//--------------------------------------------------------------------------------
function arr_dreh():Void{ // функция для перемещения названия кнопок в массиве
	var d=0; // первый индекс не тронутого элемента mcs
	for(var j=0;j<z+1;j++){ // копируем значение последнего элемента массива mcs в первый элемент mcs_ 
		mcs_[z-j]=mcs[4-j];
	}	
	for(var k=z+1;k<5;k++){
		mcs_[k]=mcs[d];  // заполняем оставшиеся элементы mcs_ не тронутыми элементами mcs
		d++;			// индекс следующего не тронутого элемента mcs 
	}
	if(z<4){z++;}else{z=0;} // увеличиваем количество перемещённых названий, если оно превышает возможное количество, онулирываем его
}
//--------------------------------------------------------------------------------
function change_urovenj(){ 
arr_dreh(); // Запускаем функцию перемещения названий кнопок
	for(var c=0;c<5;c++){ // В соответствии с перемещёнными названиями кнопок, меняе свойства кнопок:
		this[mcs_[c]]._alpha=50+10*(c+1); // прозрачность
		this[mcs_[c]]._x=xx[c];			  // x координата	
		this[mcs_[c]]._y=yy[c];			   // y координата
		this[mcs_[c]]._width=76+c*10;		// широта
		this[mcs_[c]]._height=22+c*5;		// высота
		this[mcs_[c]].swapDepths(dep[c]);	// глубина
		updateAfterEvent();
	}
}
//--------------------------------------------------------------------------------
Вложения
Тип файла: zip vistaart.zip (7.6 Кб, 42 просмотров)
__________________
Ошибок не делает лишь тот, кто ничего не делает!

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Во первых использовать массивы крайне не красиво. Нужно как можно сокращать объем выделяемой памяти, а как мы знаем массивы очень ей любят попитаться.
Во вторых есть такие методы дебагинга как trace и метод жёсткого изменения. Тоесть отключить автоматическое изменение программы и "тыкать" в ручную.
В третих очень странно так как я со старта пытался клипу присвоить какую либо глубину, не случаеться. Какойто революционер БеЧетвёртый. ДУмал может сам мувик, подставлял другой, переменновывал, всё тоже. Другие свойства норм, а вот функция свапДептчь в БеЧетвёртом что балабол в банке. Он есть но толку ноль.

Добавлено через 4 минуты
Жаль, хочеться помочь но чтото не могу понять и сам в чём дело
__________________
return this...

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

Регистрация: May 2008
Сообщений: 19
Я не могу открыть файл, unexpected file format, у меня mx2004 7.2
Но мне кажется, ошибка в месте:
Код AS1/AS2:
k=z+1;k<5;k++
По-моему, надо
Код AS1/AS2:
k=z+1;k<6;k++
Хотя я не уверен, проверить-то не могу...

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

Регистрация: Dec 2008
Адрес: Германия
Сообщений: 78
Отправить сообщение для Sajaxt с помощью ICQ Отправить сообщение для Sajaxt с помощью Skype™
2 the scratch

попробывал не получается. Да и по идее не должен этот участок кода на это влиять, онотносится ведь к сортировке массива...а не к изменениям его свойств...
__________________
Ошибок не делает лишь тот, кто ничего не делает!

Старый 12.01.2009, 14:12
the_scratch вне форума Посмотреть профиль Отправить личное сообщение для the_scratch Найти все сообщения от the_scratch
  № 5  
Ответить с цитированием
the_scratch

Регистрация: May 2008
Сообщений: 19
Sajaxt, вообще да, я чего-то ступил. Просто код так написан... Мне всё равно кажется, что где-то в arr_dreh() ошибка, ничего не могу с собой поделать.

Старый 12.01.2009, 16:19
Sajaxt вне форума Посмотреть профиль Отправить личное сообщение для Sajaxt Найти все сообщения от Sajaxt
  № 6  
Ответить с цитированием
Sajaxt
 
Аватар для Sajaxt

Регистрация: Dec 2008
Адрес: Германия
Сообщений: 78
Отправить сообщение для Sajaxt с помощью ICQ Отправить сообщение для Sajaxt с помощью Skype™
шизонуться можно только что сменил подход к изменению глубины а именно:

Код AS1/AS2:
for(var a=0;a<=z;a++){
    for(var b=(4-(a+1));b>=0;b--){
        this["b"+(4-a)].swapDepths(this["b"+b]);
    }
}
и всё бестолку
__________________
Ошибок не делает лишь тот, кто ничего не делает!

Старый 12.01.2009, 16:55
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 7  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Там не в сортировке дело, я кидал "б4" на минусовую глубину, и она была минусовая, а все остальные "плюсовые". И что? А ничего, хоть глубины разные но "б4" слишком гордый и висит выше всех. Пробывал распределить кнопки по слоям, тот же эффект. Не знаю всё дело в имени, но странно как то эт.
__________________
return this...

Старый 12.01.2009, 18:47
Sajaxt вне форума Посмотреть профиль Отправить личное сообщение для Sajaxt Найти все сообщения от Sajaxt
  № 8  
Ответить с цитированием
Sajaxt
 
Аватар для Sajaxt

Регистрация: Dec 2008
Адрес: Германия
Сообщений: 78
Отправить сообщение для Sajaxt с помощью ICQ Отправить сообщение для Sajaxt с помощью Skype™
добавил новую кнопку, с именем b5. Теперь она сопротивляется изменению свойств!
__________________
Ошибок не делает лишь тот, кто ничего не делает!

Старый 12.01.2009, 20:33
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 9  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Проблема в самом swapDepths() он не работает!!! Пробуйте сами динамичеси изменить глубину, не получиться!!!
Код AS1/AS2:
function change_urovenj(){ 
 
	bx=_root.b0._x;
	by=_root.b0._y;
	bw=_root.b0._width;
	bh=_root.b0._height;
	bd=_root.b0.getDepth();
 
	for(var c=0;c<4;c++)
	{ 
		//_root[mcs_[c]]._alpha=50+10*(c+1); // прозрачность
		_root['b'+c]._x=_root['b'+(c+1)]._x;		  // x координата	
		_root['b'+c]._y=_root['b'+(c+1)]._y;				   // y координата
		_root['b'+c]._width=_root['b'+(c+1)]._width;		// широта
		_root['b'+c]._height=_root['b'+(c+1)]._height;		// высота
 
		_root['b'+c].swapDepths(_root['b'+(c+1)]);	// глубина
	}
 
	_root.b4._x=bx;
	_root.b4._y=by;
	_root.b4._width=bw;
	_root.b4._height=bh;
	_root.b4.swapDepths(bd);
 
	updateAfterEvent();
}
UPD: Просто попробуйте прописать к примеру
Код AS1/AS2:
b1.swapDepths(666);trace(b1.getDepth())
__________________
return this...


Последний раз редактировалось AlexCooper; 12.01.2009 в 20:49.
Старый 12.01.2009, 21:10
Sajaxt вне форума Посмотреть профиль Отправить личное сообщение для Sajaxt Найти все сообщения от Sajaxt
  № 10  
Ответить с цитированием
Sajaxt
 
Аватар для Sajaxt

Регистрация: Dec 2008
Адрес: Германия
Сообщений: 78
Отправить сообщение для Sajaxt с помощью ICQ Отправить сообщение для Sajaxt с помощью Skype™
Ладно, swapDepths не работает, а что теперь делать? есть конечно идея создать есче одну не видимую кнопку.. чтобы она была поверх всего. Но как то это не правильно
__________________
Ошибок не делает лишь тот, кто ничего не делает!

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

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

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


 


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


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