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

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

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

Регистрация: Mar 2006
Сообщений: 4
По умолчанию Помогите разобраться со скриптом

Есть скрипт. который имитирует скретч эффект, как на карточках.
Сейчас он работает по нажатию мышки, если кнопка нажата он затирает, если нет, то нет. Нужно чтобы он затирал просто при наведении мыши.
Примечание: wax - имя маски, symbols - имя МС, который открывается при затирании.

Собсно скрипт:

Код:
MovieClip.prototype.startScratch = function(width){
	// each scratch in a new MC to stop it getting too slow. Only graphics inside
	// the bounding box of the MC will need to be updated when it changes...
	this.createEmptyMovieClip(this.i,++this.i);
	var s = this[this.i];
	s.w = width/2;
	s.xLast = s._xmouse;
	s.yLast = s._ymouse;
	s.xPen = s.xLast;
	s.yPen = s.yLast;
	s.xPen2 = s.xPen;
	s.yPen2 = s.yPen;
	s.onEnterFrame = doScratch;
};
// this method is executed every frame to draw in the mask movie clip
// we need to draw with fills because lines do not work as a mask
doScratch = function(){
	// an extra check just in case mouse was released outside movie area
	// (keycode 1 is left mouse button)
	if(key.isDown(1)){
		var xCurr = this._xmouse;
		var yCurr = this._ymouse;
		var dxCurr = xCurr - this.xLast;
		var dyCurr = yCurr - this.yLast;
		this.xLast = xCurr;
		this.yLast = yCurr;
		// the angle (in radians) of the direction of the motion of the mouse
		var theta = -Math.atan2(dyCurr,dxCurr);
		var p1x = xCurr + this.w*Math.sin(theta);
		var p1y = yCurr + this.w*Math.cos(theta);
		var p2x = 2*xCurr - p1x;
		var p2y = 2*yCurr - p1y;
		this.beginFill(0);
		this.moveTo(this.xPen2,this.yPen2);
		this.lineTo(this.xPen,this.yPen);
		this.lineTo(p1x,p1y);
		this.lineTo(p2x,p2y);
		this.endFill();
		this.xPen = p1x;
		this.yPen = p1y;
		this.xPen2 = p2x;
		this.yPen2 = p2y;
	}
};
MovieClip.prototype.endScratch = function(){
	// tidy up all redundant properties and methods
	// (this includes deleting the onEnterFrame event handler)
	for(var p in this){
		if(typeof(this[p])!="movieclip"){
			delete(this[p]);
		}
	}
};

createEmptyMovieClip("wax",1);
wax.onMouseDown = function(){
	// begin a new scratch every time the mouse button is pressed
	this.startScratch(30);
};
wax.onMouseUp = function(){
	// end the scratch when the button is released
	this[this.i].endScratch();
	gotoAndPlay(2);

};
startAgain = function(){
	// clear all the drawing from the mask
	for(var scratch in wax){
		if(typeof(wax[scratch])=="movieclip"){
			wax[scratch].removeMovieClip();
		}
	}
	wax.i = 0;
};
// make the MC with the drawing commands into a mask
symbols.setMask(wax);


Последний раз редактировалось KUZEN; 20.03.2006 в 22:08.
Старый 20.03.2006, 22:09
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 2  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
Огромная просьба в дальнейшем пользоваться тегом [code]
__________________
BestMasterиZация

Старый 20.03.2006, 22:35
vecher11 вне форума Посмотреть профиль Отправить личное сообщение для vecher11 Найти все сообщения от vecher11
  № 3  
Ответить с цитированием
vecher11

Регистрация: Mar 2006
Сообщений: 4
Спасибо, обязательно буду.

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

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

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


 


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


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