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

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

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

Регистрация: Mar 2010
Сообщений: 30
По умолчанию как мне контролировать эффект(правильное использование функций и лог. выражений)

Привет! есть код в нескольких слоях:

cursor:
Код AS1/AS2:
function createCursor(){
 
	hideCursor=attachMovie("cur","hCursorS",_root.getNextHighestDepth(),{_x:_xmouse,_y:_ymouse});
	hideCursor._alpha=100;
}
function controlCursor(){
	hideCursor.onEnterFrame = function(){
		hideCursor._x=_xmouse;
		hideCursor._y=_ymouse;
	}
}
function initCursor(){
	createCursor();
	controlCursor();
}
spr:
Код AS1/AS2:
function spriteVars(){
	cellSize = 50;
	lm = 8;
	mm = 8;
	k=0;
	xcoord=0;
	ycoord=0;
	spriteFalphaD=0;
	spriteFalphaA=30;
	spriteFalphaS=3;
 
	mu="qwe";
}
function randomFramesInit(){
 
	randomFramesNumb=random(totalFrameMC);
	if(randomFramesNumb==0){
	randomFramesNumb=1;
	}
	mcff.gotoAndStop(randomFramesNumb);
}
 
function spriteRollOverEffect(){
	mcff.onEnterFrame=function(){
		if(this.hitTest(hideCursor)){
			this._alpha+=spriteFalphaS;
		}else{
			this._alpha=this._alpha;
		}
		if(this._alpha==spriteFalphaA){
			this._alpha=20;
		}
		spriteRollOverBack();
	}
 
}
function spriteRollOverBack(){
		if(this._alpha>=spriteFalphaA){
			this._alpha-=spriteFalphaD;
 
		}
 
}
function spriteControl(){
	randomFramesInit();
	spriteRollOverEffect();
 
}
function matrixConstruct(){
 
	for (var im:Number = 0; im < lm; im++){
			var ym:Number = im * cellSize;
 
			for (var jm:Number = 0; jm < mm; jm++){
 
			 mcff= attachMovie(mu, "mc" + im + "_" + jm,_root.getNextHighestDepth());
 
				mcff._x = (jm * cellSize)+xcoord;
				mcff._y = (ym)+ycoord;
				mcff._alpha=spriteFalphaD;
				totalFrameMC = mcff._totalframes;
				spriteControl();
			}
	}
 
}	
function initFrameEffect(){
	spriteVars();
	createSpriteEffects();
	matrixConstruct();
}

begin:
Код AS1/AS2:
function initP(){
	initCursor();
	initFrameEffect();
}
 
initP();
нужно, что бы при наведении на любое место, начало увеличиваться альфа мувика, но дойдя до определенного значения она начала или уменьшаться или снова стать нулевым значением.

сейчас при наведении на сцену мыши, у квадратов увеличивается альфа, но дойдя до определенного значения, не уменьшается.

почему код не работает? как надо делать правильно?
Вложения
Тип файла: rar muz.rar (7.4 Кб, 83 просмотров)

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

Регистрация: Feb 2008
Сообщений: 560
Не запускал, но попробуйте заменить
Код:
this._alpha==spriteFalphaA
на
Код:
this._alpha>=spriteFalphaA

Старый 09.06.2010, 23:09
Blackjack1616 вне форума Посмотреть профиль Отправить личное сообщение для Blackjack1616 Найти все сообщения от Blackjack1616
  № 3  
Ответить с цитированием
Blackjack1616

Регистрация: Mar 2010
Сообщений: 30
там скорость увеличивается на значение spriteFalphaS, которое равно 3, а значение spriteFalphaA равно 30. поэтому надо >=.

Добавлено через 7 минут
черт! там все же получиться тридцать, но значение spriteFalphaS - оно может быть разным.

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

Регистрация: Feb 2008
Сообщений: 560
Ничего не понял из последнего поста... но у вас есть код
Код:
this._alpha=20;
после которого добавляя по 3 к значению альфы сложно получить ровно 30.

Старый 10.06.2010, 00:46
Blackjack1616 вне форума Посмотреть профиль Отправить личное сообщение для Blackjack1616 Найти все сообщения от Blackjack1616
  № 5  
Ответить с цитированием
Blackjack1616

Регистрация: Mar 2010
Сообщений: 30
Вот это да! все блин работает, опять я чего то не заметил и написал на этот форум.

Спасибо большое, все работает.

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

Теги
если , условие , функция
Опции темы
Опции просмотра

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

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


 


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


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