First time here? First time here? Newsletter Signup Newsletter
Search tutorials
Author: Guymon Adams | Website: http://www.guymonadams.com

Making the CDs draggable

Place your button on the stage in the main timeline on the layer named "cd1", then press F8 on your keyboard to turn this into a new Movie Clip symbol. I named mine cd_mc1. You're going to end up with several of these depending on how many songs you want, so be sure to include a number for reference. (Don't jump the gun and create a bunch of these clips for your different songs yet - you'll duplicate it later and modify the code you're about to insert). Next create your CD player artwork and convert it into a movie clip named "player". Place this on the stage in the layer named "player" and make sure to name the instance "player" in the Instance panel. This will be your drop target. I went one level further to make my drag-and-drop interaction more specific and added another nested movie clip named "tray" within the "player" movie clip, naming its instance what else? - "tray".

Now go back and click on cd_mc1 and add the following Actionscript in the Object Actions panel:

onClipEvent (load) {
   var orgX1 = _x;
   var orgY1 = _y;

Now double-click on the movie clip to edit in place. Click on your embedded CD button and add the following to the Object Actions panel:

on (press) {
   on (release) {
     if (eval(this._droptarget) == eval("/player/tray")) {
     unloadMovieNum (12);
     loadMovie ("volume1.swf", 12);
     _root.cdText = "Song Name";
     _x = orgX1;
     _y = orgY1;
     else if (eval(this._droptarget) != eval("/player/tray")){
     _x = orgX1;
     _y = orgY1;

Within the "on(press)" action you start your drag function and set its variables. You can learn more details about this in other tutorials on this site. Next in the "on(release)" action we set the actual drop target area by indicating the complete path to the movie clip we want (/player/tray). Then we load our first volume slider with the loadMovie action - we'll get to creating those momentarily. You can set it to load on whatever level you want, I just put mine really high to keep out of the way of anything else loading on the site. The "unloadMovieNum (12)" removes any previous song that was loaded there. "_root.cdText = "Song Name" puts the name of the song in our dynamic text box on the main movie timeline (and no, don't literally use "Song Name", put the actual artist and title of the song you attach). The _x and _y properties make it snap back after the CD been dropped, in this case whether you hit the drop target or not.


» Level Advanced

Added: 2002-01-03
Rating: 6 Votes: 22
(10 being the highest)
» Author
Guymon Adams is a graphic designer in New Orleans, LA. Visit his site for more info.
» Download
Download the files used in this tutorial.
» Forums
More help? Search our boards for quick answers!


  • There are no comments yet. Be the first to comment!

  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.
Featured Flash FLA
» Author: Inocreato
» Title: RaiseTheBlocks
» Description: Raise all the blocks to win the game
Featured Sound Loops
Image for equalize

Audio Player

» Author: TomCat Carty
» Title: The Wood
» Description: Just a little game ending or it can maybe be looped. Recorders with music box and percussion to give the feel of well, I don't know, the woods? Free to use, just credit me. thank you
Latest Font
» Author: Fábio FAFERS
» Description: I created this font for free use. Everyone can apply it in personal or business texts. Its free, but I want to be communicated in case of business use. Donations are accepted to keep the project of free fonts alive! Thank you all
Featured Sound Fx
Image for equalize

Audio Player

» Author: Davisigner
» Description: Hmm... what to say about this one? It's reminiscent of the closing notes of the opening music from the Three Stooges done in a church organ style with a closing cymbal crash. I'll give this one away gratis, but feel free to check out my free loops and potential upcoming license-mandated ones over in the respective part of Flashkit.