SWFObject

This is a great tool for embedding swf’s into your HTML pages. This is an alternative to the markup provided by Adobe via Flash or Dreamweaver. It also circumvents the need to “Activate Flash” on Windows.

I prefer this over the default scripts which often cause problems with the HTML code on the page.

It provides a few extra features also. Like ability to get variables from the URL string for the current page. It can also check the Flash version and provide a link to get the current version of Flash.

http://blog.deconcept.com/swfobject/

Some AS3 examples

Here are a few basic AS3 examples. These cover some of the everyday chores that you may need to solve with AS3. Such as:

  • Making buttons and assigning scripts to them.
  • Using the Document Class. All of these examples store their script in the Document class.
  • Creating a group of buttons. Enabling and disabling buttons.
  • Loading images into a movie.
  • Animating the timeline.
  • Animating the properties of clips.
  • Attaching clips to the stage.

All of these examples store their scripts in a class file that has the same name as the example fla. This file is set as the Document class in the fla.

A few simple AS3 examples

Updated 10/13/07, added an extra example that attaches and removes symbols in the library to the stage.

Where's onRelease in AS 3?

It looks like AS 3 has done away with onRelease, onRollover etc. All of these still work in AS 2. But what do you do if you want to make a project in AS 3?

The following is the new system. Imagine you have made a Movie Clip button and named the instance on the stage b_0:

b_0.addEventListener( MouseEvent.CLICK, button_function );
b_0.buttonMode = true;
function button_function( evt:MouseEvent ) {
trace( "you clicked the button" );
}

If you are using a button clip you do not need the line:

b_0.buttonMode = true;

This is used to make MovieClip buttons show the hand cursor and automatically jump to the frame markers _up, _over and _down on their timeline.

If your button contains a text field, this can capture the mouse focus. That is rolling over the text within the button will take focus from the button as if you had rolled off it. Use the mouseChildren property to trap mouse events, keeping them from being passed on to nested objects.

b_0.mouseChildren = false;

For more infromation: http://www.communitymx.com/blog/index.cfm?newsid=863

ImageBar Class

This class creates a row of image icons. The icon row can scroll based on mouse position or the scrolling can be tied to a button.

This class is a work in progress and can use some improvement.

To use the ImageBar class make a new instance of the class and pass it an array of Identifiers for symbols in your library that will act as icons on the bar.

Using the ImageBar you will follow this basic process. Create an array of symbols that will become images on the bar. Then make a new instance of ImageBar, passing parameters describing how the ImageBar will be displayed. One of these parameters is the array of Symbols to be displayed on the bar.

For example, the following code defines an array and then makes a new instance of ImageBar.

var icon_array = [ "Symbol 1", "Symbol 2", "Symbol 3", "Symbol 4", "Symbol 5", "Symbol 6", "Symbol 7" ];
var my_ib = new ImageBar( image_mc, // Target MC
1, 		// Depth
200, 		// view width
50,		// view height
icon_array,// icons
50,		// icon width
50,		// icon height
5 );  		// icon space

The code above builds the ImageBar in the movie clip image_mc at depth 1. Sets the width to 200 and the height to 50. Adds images to the bar from the array icon_array. Each image on the bar is defined with a width of 50 and a height of 50 and a spacing of 5 between each.

The Imagebar provides several methods and properties that determine how the icons movie on the bar. The example files show some of the various ways ImageBar can be used.

ImageBar Class

public function ImageBar( host_clip:MovieClip,
depth:Number,
width:Number,
height:Number,
array_of_images:Array,
image_width:Number,
image_height:Number,
image_spacing:Number )

Create an instance of ImageBar with the constructor.

public function set_border( stroke_weight:Number, stroke_color:Number ):Void

Set the border for an instance of ImageBar. Assign a stroke weight and color.

public function scroll_inside_box( onOff:Boolean ):Void

Call this function and pass true to make the ImageBar scroll only when the cursor is within the area of the ImageBar. Or, false to have the ImageBar scroll always, regardless of where the cursor is at.

public function auto_scroll( auto:Boolean ):Void

Call this function and pass true to make the ImageBar scroll automatically. When ImageBar scrolls automatically it scrolls in relation to the cursor position. When this is set to false the ImageBar does not scroll in relation to the cursor. Use a false setting in conjunction with buttons or other elements to trigger scrolling in the ImageBar.

public function shift_icons( n:Number ):Void

Use this function in conjunction with auto_scroll( false ) to shift the ImageBar from a button or other input. Pass the number of images to shift. For example ImageBar.shift_icons( 3 ) moves the ImageBar three images widths to the right. Negative numbers will shift to the left.

public function shift_left( ):Void

Use this with auto_scroll( false ). Shifts the ImageBar it’s width to the left.

public function shift_right( ):Void

Use this with auto_scroll( false ). Shifts the ImageBar it’s width to the right.

public function scroll_percent( n:Number ):Void

Use this method with auto_scroll( false ). Moves the ImageBar from 0 to 100% along it’s entire length of travel.

public function get_icon_symbol_array():Array

Returns an array of Symbols that have been attached to the ImageBar instance.

public function get_icon_instance_array():Array

Returns an array of all of the images instances attached to the ImageBar instance.

public function set_speed( n:Number ):Void

Pass this function a value that sets the speed the ImageBar scrolls.

ImageStreak Class update

Here’s an update to the ImageStreak Class. I have added a new method that sets the number of horizontal pixels drawn with each pass. This gives much better control over the speed of the transition.

Once you have created an instance of ImageStreak call the following method to set the number of horizontal pixels drawn with each pass. The following would set a 10 pixel step.

my_is.setStep( 10 );

Remember you can also set the setSpeed() method to change the time between drawing intervals. Between setStep() and setSpeed() it should be possible to get a wide range speeds.

ImageViewer 2 Update

After having someone ask about ways to hide the ImageViewer I decided to added a few new methods. The ImageViewer2 now supports a fadeOut() and fadeIn() method. These animate the _alpha of the ImageViewer container clip. Use fadeOut() to make an ImageViewer fade out to transparent and fade in to make an ImageView fade in to full opacity. If the ImageViewer is faded out calling loadImage() will cause it fade in automatically.

I updated the original post for ImageViewer2.

Make_3d Class Examples

Here is a class I created at extends movie clip. It adds properties that allow you to position movie clips in 3d space. The class is pretty simple with just a few properties and methods. If you’re looking for a featured 3d class that generates solid objects take a look at Sandy or PaperVision.

The Make_3d class might be good for creating simple animated effects for interface elements. The class is really more of a 2.5D. It allows you to create the illustion of depth by scaling and positioning movie clips on the stage.

Make_3d Class

[kml_flashembed movie=”http://webdevils.com/examples/Make3d/3D_04.swf” height=”400″ width=”300″ /]

Make3d provides properties to set the X, Y and Z position of a clip. Make_3d can rotate clips around the origin. Make_3d can also change the brightness of a clip as it moves back in space. This can enhance the illusion of depth. Clips can get brighter or darker and range of the effect can be set. Make_3d also provides a setting to simulate camera angle which can be used to create more less extreme perspective effects.

Using Make_3d

Make_3d Extends the movie clip class. The Make3d Class must be set as the AS 2.0 Class in the Linkage Properties dialog box for any clip will use it. Just right click a symbol in the library and choose Linkage. Then select the Export for Actionscript option and type the name Make_3d into the AS 2.0 Class field.

The Make_3d class adds three new properties, myX, myY, myZ, to movie clips that use this class. The properties set the x y and z positin of an object. To redraw a clip on the stage in 3d space call render point after setting myX, myY or myZ.

Rendering a clip in 3d space sets that clip’s _x, _y, _xscale and _yscale, this makes the clip look like it has been moved in 3d space. Do not set these properties yourself (_x, _y, _xscale and _yscale). Rendering a clip in 3d space also uses swapdepths to set the stacking of clips. Do not use swapDepths() on a 3d clip or it will not stack correctly with other 3d clips.

setOrigin( origin_x:Number, origin_y:Number )

Use setOrigin() to set the location of the vanishing point in your scene. This will usually be in the center of the stage. Setting the X and Y values to half the width and half the height of your Flash project will get the best results. If your 3d elements will be nested within another Movie Clip, you can set the origin to 0, 0 and place the host Movie Clip’s registration point at the origin.

For example if your Movie had a width of 400 and a height of 300 you would want to set the origin to 200, 150:

mc.setOrigin( 200, 150 )

translate_3d( x:Number, y:Number, z:Number )
This method moves an object in 3d. Pass it x, y and z values of the distance you want to the object to move. The values passed to translate_3d are added to the object’s current x, y and z values. For example the following would move an object 100 units in the x, 0 in the y and 400 in the z.
mc.translate_3d( 100, 0, 400 )

position_3d( x:Number, y:Number, z:Number )
This method positions an object at a location in 3d space. Pass position_3d() the x, y and z values and the clip will move to this position. For example to move a clip to the origin you could use the following:
mc.position_3d( 0, 0, 0 )

rotate_3d( x:Number, y:Number, z:Number )
This method rotates an object around the origin. For example to rotate an object 2 degrees around the x axis, 5 degrees around the y axis and 0 degrees around the z axis you could use the following:
mc.rotate_3d( 0, 0, 0 )

renderPoint()
This method renders he clip in 3d by positioning and scaling the object based on it’s x, y and z coordinates. You should call renderPoint() after setting the myX, myY or myZ properties. If you set myX, myY and myZ in the same frame you need call renderPoint() only once to update the position of your clip. If you translate_3d(), position_3d() or rotate_3d() you do not need to call renderPoint(). These methods call renderPoint() themselves.

mc.renderPoint( 0, 0, 0 )

Simple ScrollBar class update

I updated the simple Scrollbar class with a few new features.

It now has a horizontal scroll option. Setting this option allows the scrollbar to scroll horizontally.

You can now set the position of the scroll bar using the setValue() method.

It also has an enabled property. The property when set to true enables the scrollbar. Setting enabled to false disables the scrollbar. If the scroll bar is disabled you can still cal it’s setValue() method. These could be used in combination to create a progress bar or other element that would move on it’s own with being dragged. It’s also useful at times when you need to disable the scrollbar.

The new features are documented in the original post here.