Solved

movie clip play in reverse with as3

Posted on 2008-10-30
6
8,018 Views
Last Modified: 2013-11-11
i want to be able to make a movie clip play in reverse when a separate button is clicked.

i have the attached code but it only moves the movie clip back one frame at a time:

can someone tell me how to make the movie clip play all the way back to first frame and stop?

thanks
closeBtn.addEventListener(MouseEvent.MOUSE_UP, closemask);
 

function closemask(event:MouseEvent):void

{

    if (masktest1.currentFrame == 1)

    {

        masktest1.gotoAndStop(masktest1.totalFrames);

    }

    else

    {

        masktest1.prevFrame();

    }

}

Open in new window

0
Comment
Question by:flashdope
  • 3
  • 3
6 Comments
 
LVL 1

Expert Comment

by:trypt
ID: 22865086
you should use Event.ENTER_FRAME inside your function called by closeBtn, here's the example:
closeBtn.addEventListener(MouseEvent.MOUSE_UP, closemask);

 

function closemask(e:MouseEvent):void

{

    masktest1.addEventListener(Event.ENTER_FRAME, playMe);

    function playMe(e:Event):void

    {

        if(e.target.currentFrame == 1)

        {

            e.target.gotoAndStop(e.target.totalFrames);

            e.target.removeEventListener(Event.ENTER_FRAME, playMe);

        }

        else

        {

            e.target.prevFrame();

        }

    }

}

Open in new window

0
 

Author Comment

by:flashdope
ID: 22871387
hey trypt,

thanks for this. it works except it didnt stop when it got back to frame 1 so i changed "e.target.gotoAndStop(e.target.totalFrames);" to "e.target.gotoAndStop(1);" which seems to work.
i have a follow-up question:

my movie clip instance name is now yelltail
inside that movie clip is a button called backBtn1

if i want to target 'backBtn1' from the main timeline instead of inside the movie clip, how would i do that? i tried the attached but it didnt work.


yelltail.backBtn1.addEventListener(MouseEvent.MOUSE_UP, closemask);

 

function closemask(e:MouseEvent):void

{

    yelltail.backBtn1.addEventListener(Event.ENTER_FRAME, playMe);

    function playMe(e:Event):void

    {

        if(e.target.currentFrame == 1)

        {

            e.target.gotoAndStop(1);

            e.target.removeEventListener(Event.ENTER_FRAME, playMe);

        }

        else

        {

            e.target.prevFrame();

        }

    }

} 

Open in new window

0
 
LVL 1

Expert Comment

by:trypt
ID: 22875366
what do u mean by target backBtn1 from the main timeline?
backBtn1 is yelltail's child isn't it?
do u mean u want to remove backBtn1 from yelltail's child list and add it to the main timeline?
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 

Author Comment

by:flashdope
ID: 22876216
no i mean i want to put my code on the main timeline rather than on the movie clip's timeline.
0
 
LVL 1

Accepted Solution

by:
trypt earned 500 total points
ID: 22877962
oh... ok, so when backBtn1 is clicked, which movieclip will play backwards?
yelltail? if it is then the code should be like this...

yelltail.bakBtn1.addEventListener(MouseEvent.MOUSE_UP, closemask);

 

function closemask(e:MouseEvent):void

{

    e.target.parent.addEventListener(Event.ENTER_FRAME, playMe);

    function playMe(e:Event):void

    {

        if(e.target.currentFrame == 1)

        {

            e.target.gotoAndStop(1);

            e.target.removeEventListener(Event.ENTER_FRAME, playMe);

        }

        else

        {

            e.target.prevFrame();

        }

    }

}

Open in new window

0
 

Author Comment

by:flashdope
ID: 22878607
sorry trypt but this isnt working. no error messages, the button goes to its rollover state, but it doesnt work.

i'm attaching the rest of the code on the frame in case you can see a conflict. this site wont let me attach the file.

any ideas?
stop();
 
 
 

yelltail.stop();
 
 

var topDepth = 20;

var bottomDepth = 19;
 

ytBtn.addEventListener(MouseEvent.MOUSE_UP, up);
 

function up(event:MouseEvent) {

        var thisIndex = getChildIndex(yelltail);

        setChildIndex(yelltail, topDepth);

}
 

ytBtn.addEventListener(MouseEvent.MOUSE_UP, scalemask);
 

function scalemask(event:MouseEvent) {

	yelltail.play();		

}
 
 
 

yelltail.backBtn1.addEventListener(MouseEvent.MOUSE_UP, closemask);

 

function closemask(e:MouseEvent):void

{

    e.target.parent.addEventListener(Event.ENTER_FRAME, playMe);

    function playMe(e:Event):void

    {

        if(e.target.currentFrame == 1)

        {

            e.target.gotoAndStop(1);

            e.target.removeEventListener(Event.ENTER_FRAME, playMe);

        }

        else

        {

            e.target.prevFrame();

        }

    }

}

Open in new window

0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Introduction This article is primarily concerned with ActionScript 3 and generally specific to AVM2.  Most suggestions would apply to ActionScript 2 as well, and I've noted those tips that differ between AS2 and AS3. With the advent of ActionS…
This article describes a solution to a problem of subloading one movie into another when they have different SWF versions. Sometime back, I was working on an ActionScript project while I came across an interesting fact which I would like to share…
The goal of the tutorial is to teach the user how to set there setting in Adobe Flash Media Live Encoder and YouTube for optimal video and audio quality.
The goal of the tutorial is to teach the user how to use the auto adjust feature and what the different options do. When your video is not working right you can choose the auto adjust feature to help choose your settings.

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now