My favorites | Sign in
Project Logo
                
Changes to /trunk/as3/undolibrary/sfx/ReflexMe.as
r38 vs. r45   Edit
  Compare: vs.   Format:
Revision r45
Go to: 
Project members, sign in to write a code review
/trunk/as3/undolibrary/sfx/ReflexMe.as   r38 /trunk/as3/undolibrary/sfx/ReflexMe.as   r45
1 package undolibrary.sfx { 1 package undolibrary.sfx {
2 /* 2 /*
3 ** @name : ReflexMe.as 3 ** @name : ReflexMe.as
4 ** @description : Make a Reflex Effect on any MovieClip 4 ** @description : Make a Reflex Effect on any MovieClip
5 ** @author : =undo= 5 ** @author : =undo=
6 ** @web : http://www.undolog.com 6 ** @web : http://www.undolog.com
7 ** @email : g.fazioli@undolog.com 7 ** @email : g.fazioli@undolog.com
8 ** 8 **
9 ** @ver : 1.0 9 ** @ver : 1.0
10 */ 10 */
11 11
12 import flash.display.*; 12 public class ReflexMe extends Reflex {
13 import flash.filters.*;
14 import flash.geom.*;
15 import flash.text.*;
16 import flash.events.*;
17
18 public class ReflexMe extends MovieClip {
19 //
20 private var __bmpd:BitmapData;
21 private var __bmp:Bitmap;
22 private var __mask:Shape;
23 //
24 protected var __oWidth:Number
25 protected var __oHeight:Number;
26 //
27 protected var __gradientRadial:Boolean = false;
28 protected var __reflexOffset:Number = 0;
29 protected var __gradientOffset:Number = 128;
30 protected var __alphaOffset:Number = .5;
31 //
32 protected var __matrix:Matrix;
33 // 13 //
34 public function ReflexMe():void { 14 public function ReflexMe():void {
35 addEventListener(Event.ADDED_TO_STAGE, init ); 15 super( this );
36 }
37
38 /*
39 ** @name : init()
40 */
41 protected function init(e:Event = null):void {
42 // save original clip dimension
43 __oWidth = this.width;
44 __oHeight = this.height;
45 // bitmapdata/bitmap reflex
46 __bmpd = new BitmapData( this.width, this.height, true, 0x000000);
47 __bmpd.draw( this );
48 __bmp = new Bitmap( __bmpd );
49 addChild( __bmp );
50 __bmp.scaleY = -1;
51 __bmp.y = __oHeight*2 + __reflexOffset;
52 __bmp.cacheAsBitmap = true;
53 // gradient
54 __mask = new Shape();
55 __mask.cacheAsBitmap = true;
56 __mask.y = __oHeight + __reflexOffset;
57 __matrix = new Matrix();
58 __matrix.createGradientBox(__oWidth, __oHeight, Math.PI/2);
59 doGradient();
60 addChild( __mask );
61 __bmp.mask = __mask;
62 }
63
64 /*
65 ** @name : render()
66 */
67 protected function render(e:Event = null):void {
68 __bmpd.draw( this );
69 }
70
71 /*
72 ** @name : doGradient()
73 */
74 protected function doGradient():void {
75 with( __mask.graphics ) {
76 clear();
77 beginGradientFill( (__gradientRadial?GradientType.RADIAL:GradientType.LINEAR), [0x000000,0x000000], [__alphaOffset, 0], [0, __gradientOffset], __matrix);
78 drawRect(0, 0, __oWidth, __oHeight);
79 endFill();
80 }
81 }
82
83 /*
84 ** @name : reflexOffset
85 */
86 public function get reflexOffset():Number { return __reflexOffset; }
87 public function set reflexOffset(v:Number):void {
88 __reflexOffset = v;
89 __bmp.y = __oHeight*2 + __reflexOffset;
90 __mask.y = __oHeight + __reflexOffset;
91 }
92
93 /*
94 ** @name : gradientOffset
95 */
96 public function get gradientOffset():Number { return __gradientOffset; }
97 public function set gradientOffset(v:Number):void {
98 __gradientOffset = v;
99 doGradient();
100 }
101
102 /*
103 ** @name : alphaOffset
104 */
105 public function get alphaOffset():Number { return __alphaOffset; }
106 public function set alphaOffset(v:Number):void {
107 __alphaOffset = v;
108 doGradient();
109 }
110
111 /*
112 ** @name : gradientRadial
113 */
114
115 public function get gradientRadial():Boolean { return __gradientRadial; }
116 public function set gradientRadial(v:Boolean):void {
117 __gradientRadial = v;
118 doGradient();
119 } 16 }
120 } 17 }
121 } 18 }
Hosted by Google Code