home *** CD-ROM | disk | FTP | other *** search
- package qs.controls
- {
- import flash.display.*;
- import flash.events.Event;
- import flash.events.IOErrorEvent;
- import flash.events.ProgressEvent;
- import flash.geom.Rectangle;
- import flash.net.URLRequest;
- import flash.utils.*;
- import mx.core.IDataRenderer;
- import mx.core.UIComponent;
- import mx.effects.*;
- import mx.events.PropertyChangeEvent;
-
- public class BitmapTile extends UIComponent implements IDataRenderer
- {
- private static var _nextId:int = 0;
-
- private var _data:Object;
-
- private var _imageWidth:Number = 100;
-
- private var _border:Shape;
-
- private const BORDER_WIDTH:Number = 1;
-
- private var _fadeValue:Number = 1;
-
- private var title:String = "hello";
-
- private var _imageHeight:Number = 100;
-
- private var _loaded:Boolean = false;
-
- private var _loader:Loader;
-
- private var _publicAlpha:Number = 1;
-
- private var _1001078227progress:Number = 0;
-
- private var _id:int;
-
- public function BitmapTile()
- {
- super();
- this._id = _nextId++;
- this._loader = new Loader();
- this._border = new Shape();
- addChild(this._border);
- }
-
- public function set fadeValue(param1:Number) : void
- {
- this._fadeValue = param1;
- super.alpha = this._publicAlpha * this._fadeValue;
- }
-
- override public function set alpha(param1:Number) : void
- {
- this._publicAlpha = param1;
- super.alpha = this._publicAlpha * this._fadeValue;
- }
-
- public function get loaded() : Boolean
- {
- return this._loaded;
- }
-
- [Bindable(event="propertyChange")]
- public function get progress() : Number
- {
- return this._1001078227progress;
- }
-
- public function get fadeValue() : Number
- {
- return this._fadeValue;
- }
-
- public function set progress(param1:Number) : void
- {
- var _loc2_:Object = this._1001078227progress;
- if(_loc2_ !== param1)
- {
- this._1001078227progress = param1;
- this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this,"progress",_loc2_,param1));
- }
- }
-
- public function set data(param1:Object) : void
- {
- this._loaded = false;
- this.progress = 0;
- this._data = param1;
- var _loc2_:String = String(this._data is String ? this._data : this._data.thumbnail.url);
- this.title = this._data.title;
- this._loader.load(new URLRequest(_loc2_));
- this._loader.contentLoaderInfo.addEventListener(Event.COMPLETE,this.loadComplete);
- this._loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,this.updateProgress);
- this._loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,this.errorHandler);
- invalidateDisplayList();
- invalidateSize();
- }
-
- private function errorHandler(param1:IOErrorEvent) : void
- {
- trace("[error]: " + param1.text);
- }
-
- private function updateProgress(param1:ProgressEvent) : void
- {
- this.progress = param1.bytesLoaded / param1.bytesTotal;
- }
-
- public function get data() : Object
- {
- return this._data;
- }
-
- override protected function measure() : void
- {
- measuredWidth = this._imageWidth + 2;
- measuredHeight = this._imageHeight + 2;
- }
-
- public function get imageBounds() : Rectangle
- {
- var _loc1_:Number = this.unscaledWidth - 2;
- var _loc2_:Number = this.unscaledHeight - 2;
- var _loc3_:Number = _loc1_ / this._imageWidth;
- var _loc4_:Number = _loc2_ / this._imageHeight;
- var _loc5_:Number = Math.min(_loc3_,_loc4_);
- var _loc6_:Number = 1 + _loc1_ / 2 - this._imageWidth / 2 * _loc5_;
- var _loc7_:Number = 1 + _loc2_ / 2 - this._imageHeight / 2 * _loc5_;
- return new Rectangle(_loc6_,_loc7_,this._imageWidth * _loc5_,this._imageHeight * _loc5_);
- }
-
- override protected function updateDisplayList(param1:Number, param2:Number) : void
- {
- var _loc3_:Graphics = this._border.graphics;
- _loc3_.clear();
- if(this._loaded == false)
- {
- return;
- }
- var _loc4_:* = getStyle("borderColor");
- var _loc5_:* = getStyle("borderAlpha");
- var _loc6_:* = getStyle("borderWidth");
- if(isNaN(_loc4_) || _loc4_ == null)
- {
- _loc4_ = 12303291;
- }
- if(isNaN(_loc5_) || _loc5_ == null)
- {
- _loc5_ = 1;
- }
- if(isNaN(_loc6_) || _loc6_ == null)
- {
- _loc6_ = this.BORDER_WIDTH;
- }
- param1 -= 2;
- param2 -= 2;
- var _loc7_:Number = param1 / this._imageWidth;
- var _loc8_:Number = param2 / this._imageHeight;
- var _loc9_:Number = Math.min(_loc7_,_loc8_);
- var _loc10_:Number = 1 + param1 / 2 - this._imageWidth / 2 * _loc9_;
- var _loc11_:Number = 1 + param2 / 2 - this._imageHeight / 2 * _loc9_;
- this._loader.width = this._imageWidth * _loc9_;
- this._loader.height = this._imageHeight * _loc9_;
- this._loader.x = _loc10_;
- this._loader.y = _loc11_;
- _loc3_.lineStyle(_loc6_,_loc4_,_loc5_,false,"normal",CapsStyle.NONE,JointStyle.MITER);
- _loc3_.moveTo(_loc10_ + _loc6_ / 2,_loc11_ + _loc6_ / 2);
- _loc3_.lineTo(_loc10_ + this._loader.width - _loc6_ / 2,_loc11_ + _loc6_ / 2);
- _loc3_.lineTo(_loc10_ + this._loader.width - _loc6_ / 2,_loc11_ + this._loader.height - _loc6_ / 2);
- _loc3_.lineTo(_loc10_ + _loc6_ / 2,_loc11_ + this._loader.height - _loc6_ / 2);
- _loc3_.lineTo(_loc10_ + _loc6_ / 2,_loc11_ + _loc6_ / 2);
- }
-
- private function loadComplete(param1:Event) : void
- {
- this._loaded = true;
- if(this._loader.width > 110)
- {
- this._loader.width = 110;
- }
- if(this._loader.height > 90)
- {
- this._loader.height = 90;
- }
- this._imageWidth = this._loader.width;
- this._imageHeight = this._loader.height;
- var _loc2_:BitmapData = new BitmapData(this._imageWidth,this._imageHeight,true,0);
- _loc2_.draw(this._loader);
- var _loc3_:Bitmap = new Bitmap(_loc2_,"auto",true);
- addChildAt(_loc3_,0);
- invalidateSize();
- invalidateDisplayList();
- invalidateSize();
- dispatchEvent(new Event("loaded"));
- }
- }
- }
-
-