⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 speedmeter.as

📁 Papervision3d的源码
💻 AS
字号:
/**
 * Paperskated3d - simple skateboard simulator in Papervision3d
 * 
 * @author Bartek Drozdz 
 * @version 1.0
 * 
 * Released under Creative Commons Attribution-Non-Commercial-Share Alike 3.0 License.
 */
package com.paperskate3d.gui {
	
	import com.paperskate3d.SkatingEvent;
	import com.paperskate3d.SkateView;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.events.Event;
	import com.carlcalderon.arthropod.Debug;
	import flash.geom.ColorTransform;
	import flash.geom.Rectangle;
	import caurina.transitions.Tweener;
	import com.paperskate3d.util.SkateTransition;
	import flash.display.BlendMode;

	public class SpeedMeter extends Sprite {
		
		public static var METER_SIZE:Number = 200;
		public static var METER_HEIGHT:Number = 6;
		
		private var background:Bitmap;
		private var indicator:Bitmap;
		
		private var _speed:Number = 0;
		
		[Embed(source = '../../../../assets/ui/speedmeteroverlay.png')]
		private var Overlay:Class;
		private var overlay:Bitmap;
		
		[Embed(source='../../../../assets/ui/speedmeterdeco.png')]
		private var Deco:Class;
		private var deco:Bitmap;
		
		private var minIndicator:Bitmap;
		
		public function SpeedMeter() {
			
			background = new Bitmap(new BitmapData(METER_SIZE, METER_HEIGHT, true, 0x44dccfab));
			indicator = new Bitmap(new BitmapData(METER_SIZE, METER_HEIGHT, true, 0xffffff00));
			overlay = new Overlay();
			deco = new Deco();
			deco.y = -deco.height;
			deco.blendMode = BlendMode.SCREEN;
			
			minIndicator = new Bitmap(new BitmapData(1, 3, false, 0xffdccfab));
			minIndicator.y = METER_HEIGHT + 1;
			minIndicator.x = Math.round(SkateView.MINIMAL_TRICK_SPEED / SkateView.MAX_SPEED * METER_SIZE);
			
			addChild(background);
			addChild(indicator);
			addChild(overlay);
			addChild(deco);
			addChild(minIndicator);
			
			speed = 0;
			
			addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		public function init(e:Event):void {
			SkateTransition.makeIn(this, onInitReady);
		}
		
		public function onInitReady():void {
			// ok
		}
		
		public function clear():void {
			SkateTransition.makeOut(this, onCleared);
		}
		
		public function onCleared():void {
			
		}
		
		public function onSpeedChange(ske:SkatingEvent):void {
			// shameless hack
			transform.colorTransform = new ColorTransform();
			
			var ns:Number = ske.speed / SkateView.MAX_SPEED;
			Tweener.removeTweens(this);
			Tweener.addTween(this, { speed:ns, time:1, transition:"sineEaseOut" } );
		}
		
		public function set speed(s:Number):void {
			_speed = s;
			indicator.scrollRect = new Rectangle(0, 0, METER_SIZE * _speed, METER_HEIGHT);
			indicator.transform.colorTransform = new ColorTransform((1 - _speed), _speed * .8);
		}
		
		public function get speed():Number {
			return _speed;
		}
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -