Newest Articles

8 Ball Pool
Photo Reel
Image Color Tinting using Actionscript
3d Rotating Image Cube
Image Slider with Easing
Catapult Game


Popular Articles

True Fullscreen Flash Mode
8 Ball Pool
FLV Player
Image Slider
Mp3 Player with XML Playlist
Album Slide


Random Articles

Mp3 Player with XML Playlist
Music Player
Custom Right Click Menu
Storing Data Similar to Cookies
Handwriter Effect
Mouse Following Preloader


Links

Foundation-Flash
Tutorial4Me
MickM
TutorialQuest
Tutorialsphere.com - Free Online Tutorials
Newgrounds
TWiT
Link to SwfSpot
Swf Spot



rss feed

Instantiating an Object

Instantiating an Object
AddThis Social Bookmark Button
Description: Robots are generated and deleted at the click of the mouse.
Author: John Bezanis
Added: March 1st 2007
Version: Flash 8
Total Views: 6163
Views in the Past 7 Days: 71


This tutorial demonstrates how you can create multiple instances of an object using actionscript. Begin by drawing your object. I drew (badly) a robot character.
convert to symbol
Next select the object and right click it. Select Convert To Symbol. Set the name to robot, the type to Movie Clip and select Export for ActionScript. This will convert your drawing into a symbol. You will see it appear in the library. Since it is now a symbol, click it on the stage (not the library) and hit delete on the keyboard.
We are now going to create a button that creates robots, or instances of the robot symbol to be more technical. Select Window -> Common Libraries -> Buttons. Open the classic buttons folder, then Arcade buttons subfolder, then click and drag "arcade button - red" to the stage. You now have a button on the stage that doesn't do anything. Single click the button and open up the Actions tab. Insert the following code:
  1. on(press){
  2.   createRobot();
  3. }
This inserts the code into the button instance. If you look at the code, you will see a call to the function createRobot(). Click the stage area to change the focus to the stage. You will notice the code in the Actions frame disappears because now the stage is focused, not the button. We are now going to write the createRobot() function. Insert the following code into the Actions Frame:
  1. var robotSerialNumber=1;
  2. function createRobot(){
  3.   //create a robot at a random location on the stage and increment the robot serial number
  4.   this.attachMovie("robot", ("r"+robotSerialNumber++), this.getNextHighestDepth(), {_x:Stage.width*Math.random(), _y:Stage.height*Math.random()});
  5. }
We can now create a robot with the click of the red button. Now, we are going to have each robot instance deleted when they are clicked. In the library, right-click -> edit the robot symbol. Open the Action Frame and insert the following code:
  1. function onPress(){
  2.   this.removeMovieClip();
  3. }
That's it. Robots are now created by clicking the red button and deleted by clicking a robot.

The source file is available below for download.
Download Source File
Questions and Suggestions
what if you wanted to stop after a certain number of instances?
March 21st 2007 00:03AM   -   mr. P
Change the code on the button to check the serial number of the robot on(press){ if(robotSerialNumber<=5){ createRobot(); } } This limits it to 5 robots total. If you want to have a limit on the stage at one time, you could have a counter of the robots on stage, and increment it each time a robot is created and decremented each time a robot is destroyed.
March 21st 2007 06:03AM   -   John
How would you go about removing all the dynamically created instances with the click of one button? Even if there are several instances of a vriety of symbols.
April 19th 2007 19:04PM   -   lake
How can i rotate an image in same path and not blur in flash with the help of actionscript?
June 26th 2008 04:06AM   -   jefry
Add a Question or Suggestion
name:
website (optional):
captcha type the characters into the box
message (5000 characters or less):