So here's the scenario, suppose your loading an image, SWF, etc., but if any other kind of error occurs in your application, you want an error message to display above the image. There are many different ways to accomplish this task, so I thought it would be helpful to show a more unconventional technique using the Event Added.
var errorMc:MovieClip;
var assetLoader:Loader = new Loader();
assetLoader.name = "assetLoader";
assetLoader.contentLoaderInfo.addEventListener( Event.ACTIVATE, httpStatusHandler, false, 0, true );
assetLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, loaderCompleteHandler, false, 0, true );
assetLoader.load( new URLRequest("http://farm3.static.flickr.com/2068/2226178289_3f9556c08f_b.jpg") );
var appStage:Stage = stage;
appStage.addEventListener( Event.ADDED, addedHandler, false, 0, true );
appStage.addEventListener( Event.REMOVED, removedHandler, false, 0, true );
function displayMessage( notice:* ):void
{
errorMc = new MovieClip();
errorMc.mouseChildren = false;
errorMc.name = "messageMc";
errorMc.graphics.beginFill(0x000000, 0.5);
errorMc.graphics.drawRect( 0, 0, appStage.stageWidth, appStage.stageHeight );
errorMc.graphics.endFill();
var tf:TextFormat = new TextFormat();
tf.font = "Verdana";
tf.size = 16;
tf.color = 0xffffff;
tf.rightMargin = 10;
tf.leftMargin = 10;
var displayTxt:TextField = new TextField();
displayTxt.width = errorMc.width;
displayTxt.height = errorMc.height;
displayTxt.wordWrap = true;
displayTxt.selectable = false;
displayTxt.text = notice.toString();
displayTxt.setTextFormat( tf );
errorMc.addChild( displayTxt );
appStage.addChild( errorMc );
}
function httpStatusHandler( e:* ):void
{
trace( e );
displayMessage("httpStatusHandler:" + e );
}
function centerBitmap( bmp:Bitmap ):void
{
var centerPoint:Point = new Point( appStage.stageWidth / 2, appStage.stageHeight / 2 );
bmp.x = centerPoint.x - ( bmp.width / 2 );
bmp.y = centerPoint.y - ( bmp.height / 2 );
}
function getAspectRatio( width:Number, height:Number ):Number
{
if (width > height)
return ( width / height );
else
return ( height / width );
}
function adjustImageSize( bmp:Bitmap ):void
{
var aspectRatio:Number = getAspectRatio( bmp.width, bmp.height );
if( bmp.height > bmp.width && bmp.height > appStage.stageHeight ){
bmp.height = appStage.stageHeight;
bmp.width = bmp.height / aspectRatio;
} else if ( bmp.width > appStage.stageWidth ) {
bmp.width = appStage.stageWidth;
bmp.height = bmp.width / aspectRatio;
}
centerBitmap( bmp );
}
function loaderCompleteHandler( e:Event ):void
{
var bmp:Bitmap = e.currentTarget.content
adjustImageSize( bmp );
appStage.addChild( e.currentTarget.loader );
}
function addedHandler( e:Event ):void
{
if ( e.target.name == "assetLoader") {
if ( appStage.getChildByName("messageMc") != null) {
var error:DisplayObject = appStage.getChildByName("messageMc");
if ( appStage.contains( error ) ) {
appStage.swapChildren( appStage.getChildByName( e.target.name ) , error );
}
}
}
}
function removedHandler( e:Event ):void {
trace( "removedHandler: " + e.target.name );
}
AS3: Regular Expression Basics
Here are some Regular Expression basics in Actionscript 3. 1. RegExp.text(string) returns a Boolean 2. RegExp.exec(string) returns an Object 3. String.search(pattern) returns...
AS3: Use HTML and JavaScript to send Text to Flash
This is the first of two ways to send Text to Flash using HTML and JavaScript. To follow my example, you must download and link to [SWFObject](http:...
AS3: Regular Expression Basic example
The first example strips out the HTML. The second example shows how to target a single quote using unicode. //////////////////////////////////////////// //Example 1: //////////////////////////////////////////// var re:RegExp = /<font face=\u0022(...
AS2: Inline CSS
This shows how to create Cascading Style Sheets using ActionScript. /************************** CSS Translation of Properties **************************/ /* HTML ActionScript color color display display font-family fontFamily font-size fontSize font-weight fontWeight margin-left marginLeft...