PDA

Просмотр полной версии : Реверс


Anton Kio
31.03.2011, 12:36
Здравствуйте, извините но я немного туповат! :)

Есть код


import flash.events.MouseEvent;

button.stop();

button.addEventListener( MouseEvent.MOUSE_OVER, playForward, false, 0, true );
button.addEventListener( MouseEvent.MOUSE_OUT, playReverse, false, 0, true );

//this.addEventListener( Event.ENTER_FRAME, _onEnterFrame );

function playForward( e: MouseEvent ): void
{
trace( "mouseOver" );
this.removeEventListener( Event.ENTER_FRAME, _onEnterFrame );
button.play( );

}

function playReverse( e: MouseEvent ): void
{
trace( "mouseOut" );
this.addEventListener( Event.ENTER_FRAME, _onEnterFrame, false, 0, true );
}


function _onEnterFrame( e:Event ):void
{
if( button.currentFrame > 1 )
button.gotoAndStop( button.currentFrame - 1 );
else
button.gotoAndStop( 1 );
}

Как заставить воспроизводится по клику я понял, надо .MOUSE_OVER, заменить на .CLICK
Но мне нужно чтобы воспроизведение назад тоже шло по клику, то есть кликнули ролик пошел и остановился, кликнули второй раз, ролик воспроизвелся в обратную сторону! Если на функцию playReverse, я ставлю .CLICK, то это не работает, надо наверное как то заставить воспроизведение кода остановить после первого клика, но я не знаю что писать, уже неделю роюсь, хелп плиз! Прилагаю пример!

weyd
31.03.2011, 13:45
попробуй этот код, я тоже не специалист, но вроде у меня работает

import flash.events.MouseEvent;

button.stop();
var revers = true;

button.addEventListener( MouseEvent.CLICK, playrevers, false, 0, true );

//this.addEventListener( Event.ENTER_FRAME, _onEnterFrame );

function playrevers(event:MouseEvent):void
{
if(revers)
{
playForward();
revers = !revers
}
else
{
playReverse();
revers = !revers
}
}

function playForward(): void
{
trace( "Click" );
button.play( );
this.removeEventListener( Event.ENTER_FRAME, _onEnterFrame );

}

function playReverse(): void
{
trace( "Click" );
this.addEventListener( Event.ENTER_FRAME, _onEnterFrame, false, 0, true );
}


function _onEnterFrame( e:Event ):void
{
if( button.currentFrame > 1 )
button.gotoAndStop( button.currentFrame - 1 );
else
{
button.gotoAndStop( 1 );
this.removeEventListener( Event.ENTER_FRAME, _onEnterFrame );

}

}

KiL33
31.03.2011, 15:01
так


import flash.events.MouseEvent;

button.stop();

button.addEventListener( MouseEvent.MOUSE_DOWN, playForward);

function playForward( e: MouseEvent ): void {
if(button.currentFrame == 1){
trace( "mouseOver" );
this.removeEventListener( Event.ENTER_FRAME, _onEnterFrame );
button.play();
}else{
playReverse();
}

}

function playReverse(): void
{
trace( "mouseOut" );
this.addEventListener( Event.ENTER_FRAME, _onEnterFrame, false, 0, true );
}


function _onEnterFrame( e:Event ):void
{
if( button.currentFrame > 1 ){
button.gotoAndStop( button.currentFrame - 1 );
}else{
button.gotoAndStop( 1 );
}
}

Anton Kio
31.03.2011, 19:12
Ваууууу, супееееер, спасибо огромное! А как быть если несколько кнопок? :)