Revision: 27222
Updated Code
at May 31, 2010 00:36 by jHulbert
Updated Code
package com.jasonhulbert.display{
import flash.events.Event;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.errors.IOError;
import flash.events.IOErrorEvent;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
public class FullBackground extends Sprite {
var ldr:Loader;
var ldrReq:URLRequest;
var bmp:Bitmap;
var minW:Number;
var minH:Number;
var stageW:Number;
var stageH:Number;
var scaler:Number;
public function FullBackground(_imageURL:String, _minW:Number, _minH:Number) {
minW = _minW;
minH = _minH;
ldr = new Loader ;
ldrReq = new URLRequest(_imageURL);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
addEventListener(Event.ADDED_TO_STAGE, onAdd);
}
private function onAdd(event:Event):void {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, onStageResize);
ldr.load(ldrReq);
}
private function onLoaded(event:Event):void {
bmp = Bitmap(ldr.content);
bmp.smoothing = true;
addChild(bmp);
resizeImage();
}
private function onIOError(event:IOErrorEvent):void {
trace("Error loading background image: " + event);
}
private function resizeImage():void {
stageW = stage.stageWidth;
stageH = stage.stageHeight;
if (stageH / stageW > this.height / this.width) {
scaler = this.width / this.height;
this.width = stageH * scaler;
this.height = stageH;
} else {
scaler = this.height / this.width;
this.height = stageW * scaler;
this.width = stageW;
}
this.x = (stageW / 2) - (this.width / 2);
this.y = 0;
}
private function onStageResize(event:Event):void {
resizeImage();
}
}
}
Revision: 27221
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 30, 2010 18:55 by jHulbert
Initial Code
package com.jasonhulbert.display{
import flash.events.Event;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.errors.IOError;
import flash.events.IOErrorEvent;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
public class FullBackground extends Sprite {
var ldr:Loader;
var ldrReq:URLRequest;
var container:Sprite;
var bmp:Bitmap;
var minW:Number;
var minH:Number;
var stageW:Number;
var stageH:Number;
var scaler:Number;
public function FullBackground(_imageURL:String, _minW:Number, _minH:Number) {
minW = _minW;
minH = _minH;
ldr = new Loader ;
ldrReq = new URLRequest(_imageURL);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
addEventListener(Event.ADDED_TO_STAGE, onAdd);
}
private function onAdd(event:Event):void {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, onStageResize);
ldr.load(ldrReq);
}
private function onLoaded(event:Event):void {
container = new Sprite();
addChild(container);
bmp = Bitmap(ldr.content);
bmp.smoothing = true;
container.addChild(bmp);
resizeContainer();
}
private function onIOError(event:IOErrorEvent):void {
trace("Error loading background image: " + event);
}
private function resizeContainer():void {
if (stage.stageWidth < minW || stage.stageHeight < minH) {
return;
}
if (stage.stageHeight / stage.stageWidth > container.height / container.width) {
scaler = container.width / container.height;
container.height = stage.stageHeight;
container.width = stage.stageHeight * scaler;
} else {
scaler = container.height / container.width;
container.width = stage.stageWidth;
container.height = stage.stageWidth * scaler;
}
container.x = 0;
container.y = 0;
}
private function onStageResize(event:Event):void {
resizeContainer();
}
}
}
Initial URL
Initial Description
Full Background class with min. width and height
Initial Title
as3 Full Background Image Class
Initial Tags
Initial Language
ActionScript 3