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

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

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

Регистрация: May 2004
Адрес: Россия
Сообщений: 175
Attention Увеличение до (_xscale=100, _yscale=100). Уменьшение до (_xscale=75, _yscale=75).

Есть массив, состоящий из конечного числа элементов (все с разными именами). Нужно чтобы при наведении на любой элемент массива этот элемент увеличивался (от первоначального состояния - функция Begin() до (_xscale=100, _yscale=100). При отведении указателя мыши с данного элемента, он должен возвращаться в положение, описанное функцией Begin();
Листинг:
Код:
var aLogo4:Array = [mcQw, mcEr, mcTy, mcU, mcOp, mcGg, mcFg, mcFk, mcPy];
//
Begin();
for (i=0; i<aLogo4.length; i++) {
	aLogo4[i].onRollOver = function() {
		if (_root.activ_Logo4 != this) {
			bigest();
		} else {
			break;
		}
	};
}
//
for (i=0; i<aLogo4.length; i++) {
	aLogo4[i].onRollOut = function() {
		if (_root.activ_Logo4 != this) {
			smallest();
		} else {
			break;
		}
	};
}
// Исходжное положение: все 50% масштаба и 50% альфы:
function Begin():Void {
	var i:Number = 0;
	while (i<10) {
		aLogo4[i]._xscale = aLogo4[i]._yscale=aLogo4[i]._alpha=75;
		i++;
	}
}
//
function big():Void {
	aLogo4[i]._xscale++;
	aLogo4[i]._yscale++;
	updateAfterEvent();
}
//
function small():Void {
	aLogo4[i]._xscale--;
	aLogo4[i]._yscale--;
	updateAfterEvent();
}
//
function bigest():Void {
	var Int1:Number;
	if (aLogo4[i]._xscale != 100) {
		Int1 = setInterval(this, "big", 100);
		trace("Навел мышь!");
	} else {
		clearInterval(Int1);
	}
}
//
function smallest():Void {
	var Int2:Number;
	if (aLogo4[i]._xscale != 75) {
		Int2 = setInterval(this, "small", 100);
		trace("Отвел мышь!");
	} else {
		clearInterval(Int2);
	}
}
В дальнейшем надо будет отслеживать нажатый элемент массива...
Подскажите - где косяк, почему не увеличивается и не уменьшается?..

Старый 29.04.2006, 18:14
Olejan вне форума Посмотреть профиль Отправить личное сообщение для Olejan Найти все сообщения от Olejan
  № 2  
Ответить с цитированием
Olejan
[+6 16.05.06]

Регистрация: May 2004
Адрес: Россия
Сообщений: 175
На счет разных имен - имел ввиду, что нельзя имена циклом задать! Они все уникальные!

Старый 29.04.2006, 18:40
RandomUser вне форума Посмотреть профиль Отправить личное сообщение для RandomUser Найти все сообщения от RandomUser
  № 3  
Ответить с цитированием
RandomUser

Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
Разберись с областями видимости переменных.
У тебя в функциях big, small и др. используется переменная i, а откуда она по твоему мнению береться???


Последний раз редактировалось RandomUser; 29.04.2006 в 18:45.
Старый 29.04.2006, 18:54
Olejan вне форума Посмотреть профиль Отправить личное сообщение для Olejan Найти все сообщения от Olejan
  № 4  
Ответить с цитированием
Olejan
[+6 16.05.06]

Регистрация: May 2004
Адрес: Россия
Сообщений: 175
НИЧЕГО не могу понять: в старом добром Паскале - делаешь переменную глобально-доступной и никаких проблем! А тут черт ногу сломит...
ну подскажи, что надо сделать?..
Очень важный момент - уже не в первый раз на этом зарубаюсь...
ПОЖАЛУЙСТА...

Старый 29.04.2006, 18:56
Olejan вне форума Посмотреть профиль Отправить личное сообщение для Olejan Найти все сообщения от Olejan
  № 5  
Ответить с цитированием
Olejan
[+6 16.05.06]

Регистрация: May 2004
Адрес: Россия
Сообщений: 175
Ну изменил я в функции Begin(); переменную с i на j.
Эффекта никакого.

Старый 29.04.2006, 18:58
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 6  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
перенес тему в раздел для новичков
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 29.04.2006, 19:01
RandomUser вне форума Посмотреть профиль Отправить личное сообщение для RandomUser Найти все сообщения от RandomUser
  № 7  
Ответить с цитированием
RandomUser

Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
Переменная i у тебя задается циклом for (i=0; i<aLogo4.length; i++).
После окончания цикла i=aLogo4.length. Именно эту i ты и подсовываешь в свои функции. Т.е. у тебя обрабатывается элемент aLogo4[aLogo4.length]. Который по определению не существует...
Вывод: передавай параметром этот индекс, предварительно сохранив его в каждом мувике.

Старый 29.04.2006, 19:07
Olejan вне форума Посмотреть профиль Отправить личное сообщение для Olejan Найти все сообщения от Olejan
  № 8  
Ответить с цитированием
Olejan
[+6 16.05.06]

Регистрация: May 2004
Адрес: Россия
Сообщений: 175
2 RandomUser:
Как передать индекс параметром - не совсем пойму о чем речь...
Тем более: что такое "сохранить индекс в каждом документе"?
RandomUser объясни плиз, лучше с листингом.
P.S. А то меня Nirth скоро за человека считать не будет! - создаст новый раздел "Для даунов" и мои посты туда перемещать будет!

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

Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
В флеше есть такое понятие как function... И при вызове каждой функции можно ей передавать параметры...
Код:
function big(i):Void {
	aLogo4[i]._xscale++;
	aLogo4[i]._yscale++;
	updateAfterEvent();
}
В приведенном выше премере функция, которую нужно вызвать например так:
Код:
big(10);
И функция big обработает это как
Код:
	aLogo4[10]._xscale++;
	aLogo4[10]._yscale++;
	updateAfterEvent();
Пока все понятно?
p.s.В свой проект этот код вставлять не надо!

Старый 29.04.2006, 19:31
Olejan вне форума Посмотреть профиль Отправить личное сообщение для Olejan Найти все сообщения от Olejan
  № 10  
Ответить с цитированием
Olejan
[+6 16.05.06]

Регистрация: May 2004
Адрес: Россия
Сообщений: 175
Пока все...
У тебя аси нет?..

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

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

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


 


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


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