Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package {
- import flash.display.Sprite;
- import flash.display.MovieClip;
- import flash.net.URLLoader;
- import flash.net.URLRequest;
- import flash.events.Event;
- import flash.events.MouseEvent;
- import flash.display.Stage;
- import flash.display.DisplayObject;
- import flash.display.BitmapData;
- import flash.display.Bitmap;
- import flash.utils.*;
- public class ImageCarousel extends Sprite {
- private static var IMAGES:Array= new Array() ;
- private static var APP_WIDTH:Number;
- private static var APP_HEIGHT:Number;
- private static var _xCenter:Number;
- private static var _yCenter:Number;
- private static var IMAGE_WIDTH:Number=640;
- private static var IMAGE_HEIGHT:Number=426;
- private static var SPRINESS:Number=0.4;
- private static var DECAY:Number=0.5;
- private static var SCALE_DOWN_FACTOR:Number=0.2;
- private static var OFFSET_FACTOR:Number=30;
- private static var OPACITY_DOWN_FACTOR:Number=0.1;
- private static var MAX_SCALE:Number=1;
- private var STAGE:Stage;
- private var loader:URLLoader;
- public var _curBmp: BitmapData;
- private var _current:Number=0;
- private var _target:Number=0;
- private var _sponge:Number=0;
- private var _images:Array = new Array(6);
- private var loading:int=0;
- private var fset:Boolean=false;
- private var nframes:int=0;
- private var humContainer:Sprite;
- //---------------------------------------------
- public function ImageCarousel() {
- STAGE= Gallery9.STAGE;
- APP_WIDTH=STAGE.width;
- APP_HEIGHT=STAGE.height;
- _xCenter=APP_WIDTH/2;
- _yCenter=APP_HEIGHT/2;
- //x=0;
- //y=0;
- //width=50;//STAGE.width;
- //height=50;//STAGE.height;
- /*this.graphics.lineStyle(1,0xFFDD00,0.3);
- this.graphics.beginFill(0x000033);
- this.graphics.drawRect(0,0,200,STAGE.height);
- this.graphics.drawRect(0,STAGE.height-200,
- STAGE.width, STAGE.height);
- this.graphics.endFill();*/
- loadXML();
- }
- //---------------------------------------------
- private function loadXML():void {
- loader = new URLLoader(new URLRequest('imgs.xml'));
- loader.addEventListener(Event.COMPLETE, addImages);
- }
- //---------------------------------------------
- private function addImages(e: Event):void {
- loadNames(e);
- loading=IMAGES.length;
- for (var i:int=0; i< IMAGES.length; i++) {
- /*var imageClass:String=IMAGES[i];
- var className:Class=
- ApplicationDomain.currentDomain.getDefinition(
- imageClass) as Class;
- var bitmapData: BitmapData = new className(0,0);
- var image:Bitmap = new Bitmap(bitmapData);
- var bitmapData: BitmapData = new BitmapData(IMAGE_WIDTH,
- IMAGE_HEIGHT,
- false,
- 0x000000
- );*/
- //var image:Bitmap= new Bitmap((l.content as Bitmap).bitmapData.clone());
- //bitmapData.draw(tmpB);
- var l:Loaderzz= new Loaderzz(i);
- l.inloader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
- l.inloader.load(new URLRequest (IMAGES[i]));
- }
- }
- //---------------------------------------------
- private function onComplete(event:Event):void {
- //var bitmapData: BitmapData =
- // Bitmap(LoaderInfo(event.target).content).bitmapData;
- //var bitmapData: BitmapData =
- // event.target.loader.content.bitmapData;
- var i:int=Loaderzz(event.target.loader.parent).num_load;
- //var image:Bitmap = new Bitmap(bitmapData);
- var image:ZClip = new ZClip();
- //image.smoothing=true;
- image.addChild(event.target.loader);
- addChild(image);
- //image.addEventListener(MouseEvent.MOUSE_OVER, on_mouse_over);
- //image.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out);
- posImage(image,i);
- _images[i]=image;
- loading--;
- if (loading==0) {
- sortChildren("scaleX");
- start();
- }
- }
- //---------------------------------------------
- private function on_mouse_over(e:MouseEvent):void {
- var tmpzz:ZClip=ZClip(e.target.parent);
- tmpzz.goUp();
- }
- //---------------------------------------------
- private function on_mouse_out(e:MouseEvent):void {
- var tmpzz:ZClip=ZClip(e.target.parent);
- tmpzz.goDown();
- }
- //---------------------------------------------
- private function sortChildren(criteria:String):void {
- var num:int=numChildren;
- var chi:Array= new Array(num);
- var i:int=-1;
- while (++i<num) {
- chi[i]=getChildAt(i);
- }
- chi.sortOn(criteria,Array.NUMERIC);
- var child : DisplayObject;
- i=-1;
- while (++i<num) {
- child=DisplayObject(chi[i]);
- if (i!=getChildIndex(child)) {
- setChildIndex(child,i);
- }
- }
- }
- //---------------------------------------------
- private function posImage(image:ZClip, index:int) :void {
- var diffFactor:Number = index- _current;
- image.scaleX=MAX_SCALE-Math.abs(diffFactor)*SCALE_DOWN_FACTOR;
- image.scaleY=MAX_SCALE-Math.abs(diffFactor)*SCALE_DOWN_FACTOR;
- image.x=_xCenter -IMAGE_WIDTH/2 +
- (diffFactor*(diffFactor>0 ? 160 : OFFSET_FACTOR));
- image.y=_yCenter - IMAGE_HEIGHT/2+
- (diffFactor*(diffFactor>0 ? 110 : OFFSET_FACTOR));
- image.alpha=0.2;//Math.abs(diffFactor)*OPACITY_DOWN_FACTOR;
- }
- //---------------------------------------------
- private function loadNames(e: Event):void {
- var xml:XML = new XML(e.target.data);
- var list:XMLList = xml.img;
- for (var i:int=0; i<list.length(); i++) {
- IMAGES.push(list[i].@src);
- }
- }
- //---------------------------------------------
- private function on_enter_frame(e:Event):void {
- nframes++;
- //MovieClip(parent).zzte.text=nframes;
- for (var i:int=0; i<_images.length; i++) {
- var image:ZClip=_images[i];
- posImage(image,i);
- }
- _sponge=(_target-_current)*SPRINESS+_sponge*DECAY;
- _current+=_sponge;
- if (Math.abs(_sponge)<0.001) {
- removeEventListener(Event.ENTER_FRAME, on_enter_frame);
- fset=false;
- //sortChildren("scaleX");
- }
- }
- //---------------------------------------------
- private function on_mouse_wheel(e:MouseEvent):void {
- moveIndex( (e.delta>0) ? 1: -1);
- }
- //---------------------------------------------
- private function on_click(e:MouseEvent):void {
- moveIndex(1);
- }
- //---------------------------------------------
- private function moveIndex(value:int):void {
- _target+=value;
- //_target=Math.max(0,_target);
- //_target=Math.min(_images.length-1, _target);
- if (_target>_images.length-1)
- _target=0;
- if (_target<0)
- _target=_images.length-1;
- if (!fset) {
- fset=true;
- addEventListener(Event.ENTER_FRAME, on_enter_frame);
- }
- }
- //---------------------------------------------
- function zzUp():void {
- sortChildren("scaleX");
- var tmpzz:ZClip= ZClip(getChildAt(numChildren-2));
- tmpzz.goUp();
- }
- //---------------------------------------------
- function moveIndOne() {
- moveIndex(1);
- setTimeout(zzUp,500);
- }
- //---------------------------------------------
- function addHum():void {
- var hum:zzhum=new zzhum();
- humContainer.addChild(hum);
- }
- function addFl():void {
- var fl:flower_group=new flower_group();
- humContainer.addChild(fl);
- }
- //---------------------------------------------
- public function start():void {
- fset=true;
- addEventListener(Event.ENTER_FRAME,on_enter_frame);
- addEventListener(MouseEvent.MOUSE_WHEEL, on_mouse_wheel);
- addEventListener(MouseEvent.CLICK, on_click);
- setTimeout(zzUp,200);
- setInterval(moveIndOne,3000);
- humContainer=new Sprite();
- addChild(humContainer);
- setInterval(addHum,2000);
- //setTimeout(addFl,200);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement