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

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

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

Регистрация: Nov 2007
Сообщений: 50
По умолчанию Скрипт для менюшки

Всем привет и с пятничкой! У меня вопрос такого рода: Есть менюшка, на ней несколько кнопок под которыми ползунок бегает. Если я навел на кнопку, ползунок движется к этой кнопке, как только отвел, он возвращается обратно на кнопку, которая активна в данный момент.
Анимированый пример если не совсем ясно объяснил: http://rojnetsky.narod.ru/

Просьба помочь со скриптом или может, что было бы вообще идеально, есть исходник подобного меню. Заранее благодарен!


Последний раз редактировалось cipa; 14.12.2007 в 18:11.
Старый 14.12.2007, 18:23
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 2  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
Код:
import mx.utils.Delegate;
import mx.events.EventDispatcher;

class  anim.Movement{

	private var mc:MovieClip;
	private var vx:Number;
	private var vy:Number;
	private var d:Number;
	private var speed:Number;
	private var phisycsSpeed:Number;
	private var motionInterval:Number;
	
	public function Movement(){
		EventDispatcher.initialize(this);
	}
	
	public function moveFromTo(mc:MovieClip, from:Object, to:Object){
		this.mc = mc;
		vx = from.x - to.x;
		vy = from.y - to.y;
		d = Math.sqrt(vx*vx + vy*vy);
		
		mc.onEnterFrame = Delegate.create(this, function(){showMotion(to)});
	}
	
	private function showMotion(to:Object, smooth:Boolean){
		smoothMotion(to);
		
		if(Math.abs(mc._x - to.x) > 20 || Math.abs(mc._y - to.y) > 20){
			mc._x -= vx / d * speed;
			mc._y -= vy / d * speed;
		}else{
			dispatchEvent({type:"update", event:"onPlace", target:mc});
			delete mc.onEnterFrame;
		}
	}
	
	private function smoothMotion(to:Object){
		var newD:Number = Math.sqrt((mc._x - to.x)*(mc._x - to.x) + (mc._y - to.y)*(mc._y - to.y));
		speed = newD / 10;
	}
	
	public function stopMotion(toCenter:Boolean){
		delete mc.onEnterFrame;
		
		if(toCenter){
			mc._x = Stage.width / 2;
			mc._y = 200;
		}
	}
	
	
	//dispatcher methods
	public function dispatchEvent():Void {};
	public function addEventListener():Void {};
	public function removeEventListener():Void {};
}
писал когда-то такую темку...код не судите строго недаеюсь разберёшся
__________________
Flash Developer
Папа TDP4 Team Battle

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

Регистрация: Nov 2007
Сообщений: 50
Спасибо! Попробую разобраться. Потом отпишу...

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

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

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


 


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


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