1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
| import flash.display.Sprite;
import flash.display.BitmapData;
import flash.display.Graphics;
import flash.geom.Matrix;
import flash.utils.Timer;
import flash.events.TimerEvent;
var g:Graphics;
// bitmap
var bd:BitmapData = new BitmapData(20, 40, false, 0xD6D6D6);
bd.fillRect(new Rectangle(0, 0, 10, 40), 0x6699FF);
// matrix
var mat:Matrix = new Matrix();
mat.rotate(45 / 180 * Math.PI);
// progress bar
var progress:Sprite = new Sprite();
progress.x = progress.y = 20;
addChild(progress);
g = progress.graphics;
g.beginFill(0x333333);
g.drawRoundRect(0, 0, 300, 20, 20, 20);
g.endFill();
// bar
var bar:Sprite = new Sprite();
progress.addChild(bar);
g = bar.graphics;
g.beginBitmapFill(bd, mat);
g.drawRoundRect(0, 0, 300, 20, 20, 20);
g.endFill();
// mask
var msk:Sprite = new Sprite();
progress.addChild(msk);
g = msk.graphics;
g.beginFill(0x0);
g.drawRoundRect(0, 0, 300, 20, 20, 20);
g.endFill();
msk.x = -300;
bar.mask = msk;
// timer
var timer:Timer = new Timer(25);
timer.addEventListener(TimerEvent.TIMER, timerListener);
timer.start();
// filter
var arr:Array = new Array();
arr.push(new BevelFilter(3, 45, 0xFFFFFF, 1, 0x0, 1, 10, 10, 1, 3));
arr.push(new DropShadowFilter(2, 45, 0x0, 0.75, 2, 2, 1, 3));
progress.filters = arr;
// timer listener
function timerListener(e:TimerEvent):void
{
bd.lock();
var c:uint = bd.getPixel(19, 0);
bd.scroll(1, 0);
bd.fillRect(new Rectangle(0, 0, 1, 40), c);
bd.unlock();
msk.x += 2;
if(msk.x > 0){
msk.x = -300;
}
} |