Цитата:
Сообщение от morkovka
Если не трудно, сбросьте, пожалуйста. В книжке про классы есть, там про все есть. Книжка Adobe Программирование ActionScript 3.0, хорошая, но без помощи профессионалов мне не разобраться:-(
|
http://www.murmadillo.tut.su/m/timeLineMove.rar
Документ класс док.
Расширяем класс SimpleButton, получаем DispatchUintSimBtn, при нажатии на эту расширенную кнопку шлется событие на сцену

Код AS3:
stage.dispatchEvent(new LexEvent('gotoFrame',{frame:gotoFrame}));
те. где бы кнопка не была событие пошлется все равно при ее нажатии.
теперь в поле класс SimpleButtona (в библиотеке на нарисованной кнопке правой кнопочкой пункт линкаже) можно написать Sim46_47 и создать в папке файл такого содержания

Код AS3:
package{
public class Sim46_47 extends DispatchUintSimBtn{
public function Sim46_47():void{
super(47);//вызов родительского конструктора
//при нажатии пошлется событие 'gotoFrame' c
//параметром 47
}
}
}
конструкторе класса DispatchUintSimBtn есть параметр, этот параметр будет диспатчется при нажатии на кнопку.
в документ классе Doc это событие с параметром и ловим

Код AS3:
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class Doc extends MovieClip{;
public function Doc(){
addFrameScript(44,funcStop);//останов на 44 кадре
//ловить свое же событие, от нажатия кнопки
stage.addEventListener('gotoFrame',gotoFrameHandler);
//просто индикатор текущего кадра, на сцену в нарисованное пле txt
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(evt:Event):void{
txt.text = ''+currentFrame;
}
private function funcStop() {//останов на 44 кадре
stop();//останов на 44 кадре
}//останов на 44 кадре
private function gotoFrameHandler(evt:LexEvent):void{
gotoAndPlay(evt.params.frame);
}
}
}