📄 speedmeter.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 + -