/asutil/style/Glitter.as
http://asutil.googlecode.com/ · ActionScript · 116 lines · 63 code · 13 blank · 40 comment · 8 complexity · 5db4a7b9066d3e25163bcd7f4e7e54fb MD5 · raw file
- package asutil.style
- {
-
- import asutil.construct.impl.Hashtable;
-
- import flash.display.DisplayObject;
-
- import mx.effects.Fade;
- import mx.effects.Sequence;
- /**
- * ????
- */
- public class Glitter
- {
- /**
- * ???
- */
- public function Glitter(argObject:Object)
- {
- glitterTable = new Hashtable;
- //??????? ???
- if(null == argObject.glitterEles){
- throw new Error("Invaild glitter elemsnts.");
- }
- this.glitterEles = argObject.glitterEles;
-
- //????????????????2??????
- if(null != argObject.interval){
- this.interval = argObject.interval;
- }
-
- initEffect();
- }
- /**
- * ????
- */
- public function play():void{
- var effSeq:Sequence = glitterTable.find(glitterEles) as Sequence;
- if( null == effSeq){
- //?????
- initEffect();
- //????
- effSeq = glitterTable.find(glitterEles) as Sequence;
- }
- /**
- * ?????play????
- * ???play???flex???????????????
- * targets???????????
- * ?resume????????????
- */
- effSeq.resume();
- }
-
- /**
- * ????
- */
- public function pause():void{
- var effSeq:Sequence = glitterTable.find(glitterEles) as Sequence;
- if( null != effSeq){
- effSeq.pause();
- //????alpha???1
- var eleArray:Array = effSeq.targets;
- eleArray.forEach(function(ele:DisplayObject,index:int,eleArray:Array):void{
- ele.alpha = 1;
- })
- }
- }
-
- /**
- * ??????????
- */
- public function stop():void{
- pause();
- glitterTable.remove(glitterEles);
- }
-
- /**
- * ???????????
- */
- private function initEffect():void{
- //?? ??
- var eff1:Fade = new Fade;
- eff1.duration = this.interval;
- eff1.alphaTo = 0
-
- //?? ??
- var eff2:Fade = new Fade;
- eff2.duration = this.interval;
- eff2.alphaTo=1
-
- var effSeq:Sequence = new Sequence;
- effSeq.addChild(eff1);
- effSeq.addChild(eff2);
- effSeq.repeatCount = 0;
-
- effSeq.targets = glitterEles;
- effSeq.play();
- effSeq.pause();
- glitterTable.add(this.glitterEles,effSeq);
- }
-
- /**
- * ?????????
- */
- private var glitterEles:Array;
- /**
- * ???????1?
- */
- private var interval:Number = 1000;
- /**
- * ???????????global??
- */
- private static var glitterTable:Hashtable;
-
- }
- }