亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Flex學習筆記_06 使用行為對象和動畫效果_模糊

系統 1721 0

6.3.1 模糊效果和發光效果的運用實例
Blur 模糊效果 和 Glow 發光效果都運用了Flash Player 內置的filter濾鏡功能,繼承于 TweenEffect 對象。TweenEffect?對象是所有形變效果的父類,它的子類占據了動畫效果的絕大部分。


Blur 模糊效果
Xml代碼 復制代碼
  1. <? xml ? version = "1.0" ? encoding = "utf-8" ?> ??
  2. < mx:Application ? xmlns:mx = "http://www.adobe.com/2006/mxml" ? layout = "absolute" ? creationComplete = "initUI()" > ??
  3. ??
  4. ???? < mx:Style ? source = "style.css" ? /> ??
  5. ??? ??
  6. ???? < mx:Script > ??
  7. ???????? <![CDATA[ ?
  8. ????????????private?var?handlerEnd:Boolean?=?true; ?
  9. ????????????private?var?isReverse:Boolean?=?false; ?
  10. ????????????//初始化函數 ?
  11. ????????????private?function?initUI():void{ ?
  12. ????????????????//指定目標對象,[]是數組定義符號 ?
  13. ????????????????//[myPane]表示一個只含有一個元素的數組 ?
  14. ????????????????Effect_Blur.targets?=?[myPanel];??????????????? ?
  15. ????????????????//var?arr:Array?=?new?Array(); ?
  16. ????????????????//arr.push(myPanel); ?
  17. ????????????} ?
  18. ????????????//開始播放動畫效果 ?
  19. ????????????internal?function?startBlur():void{ ?
  20. ????????????????handlerEnd?=?true;??????????????? ?
  21. ????????????????Effect_Blur.play(); ?
  22. ????????????} ?
  23. ????????????//執行動畫播放結束后的動作 ?
  24. ????????????internal?function?endBlur():void{ ?
  25. ????????????????if(handlerEnd){ ?
  26. ????????????????????//反向變化 ?
  27. ????????????????????isReverse?=?!isReverse; ?
  28. ????????????????????Effect_Blur.play(null,isReverse);??????????????????? ?
  29. ????????????????} ?
  30. ????????????} ?
  31. ????????????//停止按鈕的動作 ?
  32. ????????????internal?function?stopBlur():void{ ?
  33. ????????????????handlerEnd?=?false; ?
  34. ????????????????Effect_Blur.end(); ?
  35. ????????????????pauseBtn.label?=?"暫停"; ?
  36. ????????????????//清空濾鏡,消除模糊效果,將myPanel還原到原始狀態 ?
  37. ????????????????myPanel.filters?=?[]; ?
  38. ????????????} ?
  39. ????????????//暫停按鈕的動作 ?
  40. ????????????internal?function?pauseHandler():void{ ?
  41. ????????????????if(!Effect_Blur.isPlaying){ ?
  42. ????????????????????return; ?
  43. ????????????????} ?
  44. ????????????????if(pauseBtn.label?==?"暫停"){ ?
  45. ????????????????????pauseBtn.label?=?"繼續"; ?
  46. ????????????????????Effect_Blur.pause(); ?
  47. ????????????????}else{ ?
  48. ????????????????????pauseBtn.label?=?"暫停"; ?
  49. ????????????????????Effect_Blur.resume(); ?
  50. ????????????????} ?
  51. ????????????} ?
  52. ????????]]> ??
  53. ???? </ mx:Script > ??
  54. ???? < mx:Blur ? id = "Effect_Blur" ? effectEnd = "endBlur()" ??
  55. ???????? blurXFrom = "0" ? blurXTo = "30" ? blurYFrom = "0" ? blurYTo = "30" ? duration = "1500" /> ??
  56. ???? < mx:Panel ? id = "myPanel" ? styleName = "imgPanel" ? x = "30" ? y = "42" ? width = "232" ? height = "215" ? layout = "absolute" ? title = "圖片面板" > ??
  57. ???????? < mx:Image ? x = "0" ? y = "10" ? source = "tree.jpg" /> ??
  58. ???????? < mx:Label ? x = "0" ? y = "109" ? text = "walking?tree" /> ??
  59. ???? </ mx:Panel > ??
  60. ???? < mx:Button ? click = "startBlur()" ? x = "30" ? y = "275" ? label = "開始" ? width = "50" /> ??
  61. ??? ??
  62. ???? < mx:Button ? click = "stopBlur()" ? x = "124" ? y = "275" ? label = "停止" ? width = "48" /> ??
  63. ???? < mx:Button ? click = "pauseHandler()" ? x = "214" ? y = "275" ? label = "暫停" ? width = "48" ? id = "pauseBtn" /> ??
  64. ??? ??
  65. </ mx:Application > ??
        <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initUI()">

    <mx:Style source="style.css" />
   
    <mx:Script>
        <![CDATA[
            private var handlerEnd:Boolean = true;
            private var isReverse:Boolean = false;
            //初始化函數
            private function initUI():void{
                //指定目標對象,[]是數組定義符號
                //[myPane]表示一個只含有一個元素的數組
                Effect_Blur.targets = [myPanel];               
                //var arr:Array = new Array();
                //arr.push(myPanel);
            }
            //開始播放動畫效果
            internal function startBlur():void{
                handlerEnd = true;               
                Effect_Blur.play();
            }
            //執行動畫播放結束后的動作
            internal function endBlur():void{
                if(handlerEnd){
                    //反向變化
                    isReverse = !isReverse;
                    Effect_Blur.play(null,isReverse);                   
                }
            }
            //停止按鈕的動作
            internal function stopBlur():void{
                handlerEnd = false;
                Effect_Blur.end();
                pauseBtn.label = "暫停";
                //清空濾鏡,消除模糊效果,將myPanel還原到原始狀態
                myPanel.filters = [];
            }
            //暫停按鈕的動作
            internal function pauseHandler():void{
                if(!Effect_Blur.isPlaying){
                    return;
                }
                if(pauseBtn.label == "暫停"){
                    pauseBtn.label = "繼續";
                    Effect_Blur.pause();
                }else{
                    pauseBtn.label = "暫停";
                    Effect_Blur.resume();
                }
            }
        ]]>
    </mx:Script>
    <mx:Blur id="Effect_Blur" effectEnd="endBlur()"
        blurXFrom="0" blurXTo="30" blurYFrom="0" blurYTo="30" duration="1500"/>
    <mx:Panel id="myPanel" styleName="imgPanel" x="30" y="42" width="232" height="215" layout="absolute" title="圖片面板">
        <mx:Image x="0" y="10" source="tree.jpg"/>
        <mx:Label x="0" y="109" text="walking tree"/>
    </mx:Panel>
    <mx:Button click="startBlur()" x="30" y="275" label="開始" width="50"/>
   
    <mx:Button click="stopBlur()" x="124" y="275" label="停止" width="48"/>
    <mx:Button click="pauseHandler()" x="214" y="275" label="暫停" width="48" id="pauseBtn"/>
   
</mx:Application>
      
?
動畫效果的target 屬性,用來指定作用對象,而targets 屬性可以將動畫效果一次運用在多個對象上。targets 是一個Array 數組。

Blur 對象的這些屬性:blurXFrom、blurXTo、blurYFrom、blurYTo 定義了始末位置的模糊距離。

Effect 對象的play 方法中,第一個參數表示目標對象,如果之前已經指定,可以直接用null代替。第二個參數isReverse 表示播放方向,true:逆向播放,falsh:正向播放。

filters屬性代表目標對象當前使用的濾鏡集合。它是所有可視化對象的公有屬性,以數組的形式存儲了自身所有的濾鏡數據。如果使用[]給他賦值,代表清除了目標所有濾鏡效果的作用。


Glow 發光效果

Xml代碼 復制代碼
  1. <? xml ? version = "1.0" ? encoding = "utf-8" ?> ??
  2. < mx:Application ? xmlns:mx = "http://www.adobe.com/2006/mxml" ? layout = "absolute" ? creationComplete = "initUI()" > ??
  3. ???? < mx:Style ? source = "style.css" ? /> ??
  4. ??? ??
  5. ???? < mx:Script > ??
  6. ???????? <![CDATA[ ?
  7. ????????????private?var?handlerEnd:Boolean?=?true; ?
  8. ????????????private?var?isReverse:Boolean?=?false; ?
  9. ??????????? ?
  10. ????????????private?function?initUI():void{ ?
  11. ????????????????Effect_Blur.target?=?myPanel; ?
  12. ????????????????Effect_Glow.target?=?myPanel; ?
  13. ????????????} ?
  14. ????????????//開始播放動畫效果 ?
  15. ????????????internal?function?startBlur():void{ ?
  16. ????????????????//在播放函數中指定目標對象,[]是數組定義符號,[myPane] ?
  17. ????????????????//var?arr:Array?=?new?Array(); ?
  18. ????????????????//arr.push(myPanel); ?
  19. ????????????????handlerEnd?=?true;??????????????? ?
  20. ????????????????Effect_Blur.play(); ?
  21. ????????????????Effect_Glow.play(); ?
  22. ????????????} ?
  23. ????????????//執行動畫播放結束后的動作 ?
  24. ????????????internal?function?endBlur():void{ ?
  25. ????????????????if(handlerEnd){ ?
  26. ????????????????????//反向播放 ?
  27. ????????????????????isReverse?=?!isReverse; ?
  28. ????????????????????Effect_Blur.play(null,isReverse);??????????????????? ?
  29. ????????????????} ?
  30. ????????????} ?
  31. ????????????internal?function?stopBlur():void{ ?
  32. ????????????????handlerEnd?=?false; ?
  33. ????????????????Effect_Blur.end(); ?
  34. ??????????????? ?
  35. ????????????????var?tmpArr:Array?=?myPanel.filters; ?
  36. ????????????????//遍歷數組 ?
  37. ????????????????for?(var?i:uint?=?0;?i?<?tmpArr.length;?i++)?{ ?
  38. ????????????????????//is?是類型判斷符號,指明對象是否是指定對象的實例或指定對象子類的實例 ?
  39. ????????????????????if?(tmpArr[i]?is?BlurFilter)?{ ?
  40. ????????????????????????//如果是,從數組中刪除。 ?
  41. ????????????????????????//splice(i,1),刪除從i位置開始的一個元素 ?
  42. ????????????????????????tmpArr.splice(i,1); ?
  43. ????????????????????????i?=?i-1; ?
  44. ????????????????????} ?
  45. ????????????????} ?
  46. ????????????????//將新的數據賦予對象,新的濾鏡生效 ?
  47. ????????????????//myPanel.filters?=?tmpArr; ?
  48. ????????????????myPanel.filters?=?[] ?
  49. ????????????} ?
  50. ????????]]> ??
  51. ???? </ mx:Script > ??
  52. ??? ??
  53. ???? < mx:Blur ? id = "Effect_Blur" ? effectEnd = "endBlur()" ??
  54. ???????? blurXFrom = "0" ? blurXTo = "30" ? blurYFrom = "0" ? blurYTo = "30" ? duration = "1500" /> ??
  55. ???? < mx:Glow ? id = "Effect_Glow" ? alphaFrom = "1.0" ? alphaTo = "0.3" ??
  56. ???????? blurXFrom = "0.0" ? blurXTo = "30.0" ??
  57. ???????? blurYFrom = "0.0" ? blurYTo = "30.0" ? color = "0x6633ff" ? /> ??
  58. ??? ??
  59. ???? < mx:Panel ? id = "myPanel" ? styleName = "imgPanel" ? x = "30" ? y = "42" ? width = "232" ? height = "215" ? layout = "absolute" ? title = "圖片面板" > ??
  60. ???????? < mx:Image ? x = "0" ? y = "10" ? source = "tree.jpg" /> ??
  61. ???????? < mx:Label ? x = "0" ? y = "109" ? text = "walking?tree" /> ??
  62. ???? </ mx:Panel > ??
  63. ???? < mx:Button ? click = "startBlur()" ? x = "30" ? y = "275" ? label = "開始" ? width = "50" /> ??
  64. ??? ??
  65. ???? < mx:Button ? click = "stopBlur()" ? x = "124" ? y = "275" ? label = "停止" ? width = "48" /> ??
  66. ??? ??
  67. </ mx:Application > ??
      <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initUI()">
    <mx:Style source="style.css" />
   
    <mx:Script>
        <![CDATA[
            private var handlerEnd:Boolean = true;
            private var isReverse:Boolean = false;
           
            private function initUI():void{
                Effect_Blur.target = myPanel;
                Effect_Glow.target = myPanel;
            }
            //開始播放動畫效果
            internal function startBlur():void{
                //在播放函數中指定目標對象,[]是數組定義符號,[myPane]
                //var arr:Array = new Array();
                //arr.push(myPanel);
                handlerEnd = true;               
                Effect_Blur.play();
                Effect_Glow.play();
            }
            //執行動畫播放結束后的動作
            internal function endBlur():void{
                if(handlerEnd){
                    //反向播放
                    isReverse = !isReverse;
                    Effect_Blur.play(null,isReverse);                   
                }
            }
            internal function stopBlur():void{
                handlerEnd = false;
                Effect_Blur.end();
               
                var tmpArr:Array = myPanel.filters;
                //遍歷數組
                for (var i:uint = 0; i < tmpArr.length; i++) {
                    //is 是類型判斷符號,指明對象是否是指定對象的實例或指定對象子類的實例
                    if (tmpArr[i] is BlurFilter) {
                        //如果是,從數組中刪除。
                        //splice(i,1),刪除從i位置開始的一個元素
                        tmpArr.splice(i,1);
                        i = i-1;
                    }
                }
                //將新的數據賦予對象,新的濾鏡生效
                //myPanel.filters = tmpArr;
                myPanel.filters = []
            }
        ]]>
    </mx:Script>
   
    <mx:Blur id="Effect_Blur" effectEnd="endBlur()"
        blurXFrom="0" blurXTo="30" blurYFrom="0" blurYTo="30" duration="1500"/>
    <mx:Glow id="Effect_Glow" alphaFrom="1.0" alphaTo="0.3"
        blurXFrom="0.0" blurXTo="30.0"
        blurYFrom="0.0" blurYTo="30.0" color="0x6633ff" />
   
    <mx:Panel id="myPanel" styleName="imgPanel" x="30" y="42" width="232" height="215" layout="absolute" title="圖片面板">
        <mx:Image x="0" y="10" source="tree.jpg"/>
        <mx:Label x="0" y="109" text="walking tree"/>
    </mx:Panel>
    <mx:Button click="startBlur()" x="30" y="275" label="開始" width="50"/>
   
    <mx:Button click="stopBlur()" x="124" y="275" label="停止" width="48"/>
   
</mx:Application>
    
?
Glow 對象的參數比較多,主要是設置光顏色color、透明度alphaFrom alphaTo、水平和垂直的發光距離blurXFrom、blurXTo、blurYFrom、blurYTo。

Flex學習筆記_06 使用行為對象和動畫效果_模糊、發光效果


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲短视频在线观看 | 奇米影视7777久久精品人人爽 | 99久久国产综合精麻豆 | 久久日本精品99久久久 | 久久精品久久精品 | 中文字幕 二区 三区 搜查官 | 91成人午夜精品福利院在线观看 | 欧美成人精品不卡视频在线观看 | 亚洲精品久久久久中文字小说 | 亚洲精品国产精品国自产观看 | 免费的一级毛片 | 欧美另类性视频在线看 | 四虎永久地址 | 久草视频中文 | 五月婷婷久 | 中文字幕日韩精品在线 | 一级毛片真人免费观看 | 五月免费视频 | 国产麻豆精品在线 | 久久久久久91 | 四虎精品影视 | 香蕉视频成人在线观看 | 婷婷日韩| 国产成年人网站 | 国产69精品久久久久999三级 | 免费xxxx美国18 | 亚洲国产精品一区二区久久 | 国产精品蜜臀 | 伊人三区 | 免费观看国产精品 | 久久免费高清 | 三上悠亚在线一区 | 免费无毒片在线观看 | 欧美黑人喷潮水xxxx | 97国产在线视频公开免费 | 天天操人人干 | 久青草青综合在线视频 | 久久九九热视频 | 暗香影院午夜国产精品 | 91精品久久久久亚洲国产 | 亚洲成人在线免费 |