| DenverusIm |
18.01.2011 12:07 |
вообще во flash есть специальный символ кнопка
он позволяет в четырёх кадрах создать кнопку с возможностью реагировать на события Up, Over, Down, hit
но если нужна более серьёзная анимация, то на временной шкале рисуете поведение кнопки и при помощи примерно такого кода управляете передвижением
Код AS3:
package scripts.components.buttons
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.ui.Mouse;
import flash.ui.MouseCursor;
public class Button1 extends MovieClip
{
//*********************************************************************
// 1. Пременные класса
private var mouse:Boolean = false;// true указатель мыши над кнопкой
//*********************************************************************
// 2. Конструктор класса
public function Button1()
{
// останавливаем клип
stop();
// присваиваем название кнопке и устанавливаем параметры текстового поля
labelText();
labelButton.mouseEnabled = false;
// ставим слушатель события наведения курсора на кнопку
addEventListener(MouseEvent.MOUSE_OVER, mouseOverListener);
}
//**********************************************************************
// 3. Функции слушателей событий
// 3.1 Наведение курсора мыши на кнопку
private function mouseOverListener(e:MouseEvent)
{
// меняем указатель мыши на руку и направление проигрывания клипа
Mouse.cursor = MouseCursor.BUTTON;
mouse = true;
// добавляем слушателей событий для кнопки
addEventListener(Event.ENTER_FRAME, frameListener);
addEventListener(MouseEvent.MOUSE_OUT, mouseOutListener);
addEventListener(MouseEvent.CLICK, clickListener);
}
// 3.2 убирание курсора мыши с кнопки
private function mouseOutListener(e:MouseEvent)
{
// меняем курсор мыши на стрелку и направление проигрывания коипа
Mouse.cursor = MouseCursor.ARROW;
mouse = false;
}
// 3.3 функция проигрывания клипа кнопки
private function frameListener(e:Event)
{
// при курсоре мыши над кнопкой проигрывание вперёд при убирании назад
if (mouse)
{
nextFrame();
}
else
{
prevFrame();
}
// в случае если указатель мышки вышел за пределы кнопки и проигрался клип до конца
// удаляем лишние слушатели
if (! mouse && currentFrame == 0)
{
removeEventListener(MouseEvent.MOUSE_OUT, mouseOutListener);
removeEventListener(Event.ENTER_FRAME, frameListener);
removeEventListener(MouseEvent.CLICK, clickListener);
}
}
// 3.4 функция обработки нажатия
private function clickListener(e:MouseEvent)
{
trace('кнопка нажата');
}
//********************************************************************
// 4 Открытые методы класса
// 4.1 Присвоение названия кнопки
public function labelText(value:String="имя кнопки 20 симв."):void{
// проверяем длину введённого значения конопки если она не превышает 20 символов
// вводим её значение на кнопку
if (value.length<20){
labelButton.text=value;
}else{
labelButton.text="не более 20 символов";
}
}
}
}
что типа того но для того что бы реально ответить необходимо видеть что именно вы нарисовали и понимать как должна отрабатывать анимация
Добавлено через 3 минуты
вообще во flash есть специальный символ кнопка
он позволяет в четырёх кадрах создать кнопку с возможностью реагировать на события Up, Over, Down, hit
но если нужна более серьёзная анимация, то на временной шкале рисуете поведение кнопки и при помощи примерно такого кода управляете передвижением
Код AS3:
package scripts.components.buttons
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.ui.Mouse;
import flash.ui.MouseCursor;
public class Button1 extends MovieClip
{
//*********************************************************************
// 1. Пременные класса
private var mouse:Boolean = false;// true указатель мыши над кнопкой
//*********************************************************************
// 2. Конструктор класса
public function Button1()
{
// останавливаем клип
stop();
// присваиваем название кнопке и устанавливаем параметры текстового поля
labelText();
labelButton.mouseEnabled = false;
// ставим слушатель события наведения курсора на кнопку
addEventListener(MouseEvent.MOUSE_OVER, mouseOverListener);
}
//**********************************************************************
// 3. Функции слушателей событий
// 3.1 Наведение курсора мыши на кнопку
private function mouseOverListener(e:MouseEvent)
{
// меняем указатель мыши на руку и направление проигрывания клипа
Mouse.cursor = MouseCursor.BUTTON;
mouse = true;
// добавляем слушателей событий для кнопки
addEventListener(Event.ENTER_FRAME, frameListener);
addEventListener(MouseEvent.MOUSE_OUT, mouseOutListener);
addEventListener(MouseEvent.CLICK, clickListener);
}
// 3.2 убирание курсора мыши с кнопки
private function mouseOutListener(e:MouseEvent)
{
// меняем курсор мыши на стрелку и направление проигрывания коипа
Mouse.cursor = MouseCursor.ARROW;
mouse = false;
}
// 3.3 функция проигрывания клипа кнопки
private function frameListener(e:Event)
{
// при курсоре мыши над кнопкой проигрывание вперёд при убирании назад
if (mouse)
{
nextFrame();
}
else
{
prevFrame();
}
// в случае если указатель мышки вышел за пределы кнопки и проигрался клип до конца
// удаляем лишние слушатели
if (! mouse && currentFrame == 0)
{
removeEventListener(MouseEvent.MOUSE_OUT, mouseOutListener);
removeEventListener(Event.ENTER_FRAME, frameListener);
removeEventListener(MouseEvent.CLICK, clickListener);
}
}
// 3.4 функция обработки нажатия
private function clickListener(e:MouseEvent)
{
trace('кнопка нажата');
}
//********************************************************************
// 4 Открытые методы класса
// 4.1 Присвоение названия кнопки
public function labelText(value:String="имя кнопки 20 симв."):void{
// проверяем длину введённого значения конопки если она не превышает 20 символов
// вводим её значение на кнопку
if (value.length<20){
labelButton.text=value;
}else{
labelButton.text="не более 20 символов";
}
}
}
}
что типа того но для того что бы реально ответить необходимо видеть что именно вы нарисовали и понимать как должна отрабатывать анимация
|