最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flash CS4教程:利用遮罩功能及添加代碼來制作切換放大菜單效果

  發(fā)布時間:2014-06-25 14:04:37   作者:佚名   我要評論
本教程是主要使用三角函數(shù)知識來制作環(huán)繞的菜單效果,并通過偵聽按鈕事件狀態(tài)來控制菜單中的按鈕,使其在被單擊后進行切換并放大顯示在舞臺的中心位置,教程介紹地不錯,也能詳細,轉(zhuǎn)發(fā)過來與大家一起分享學習

本例主要使用三角函數(shù)知識來制作環(huán)繞的菜單效果,并通過偵聽按鈕事件狀態(tài)來控制菜單中的按鈕,使其在被單擊后進行切換并放大顯示在舞臺的中心位置。

本例思路

.利用遮罩功能制作高光按鈕。

.添加代碼來控制菜單的切換效果。

Part 1 制作高光按鈕

(1)新建一個600×300像素,幀頻為12fps的空白文檔。使用“矩形工具”繪制一個與舞臺大小相同的矩形,然后設置填充類型為“放射狀”,第1個色標顏色為(R:0,G:114,B:188),第2個色標顏色為(R:0,G:0,B:0),填充效果如圖9-1所示。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-1 制作背景

(2)按Ctrl+F8組合鍵新建一個影片剪輯(名稱為button),然后使用“橢圓工具”繪制一個圓形,并設置填充類型為“放射狀”,第1個色標顏色為(R:153,G:204,B:51),第2個色標顏色為(R:0,G:102,B:51),填充效果如圖9-2所示。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-2 繪制球形

(3)新建一個圖層,然后使用“矩形工具”繪制一個矩形色塊,并設置填充色為(R:153,G:204,B:51),再使用“任意變形工具”將其處理成如圖9-3所示的效果。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-3 繪制矩形條塊

(4)新建一個Mask圖層,然后將按鈕復制到該圖層中,接著將該圖層設置為下面兩個圖層的遮罩圖層,如圖9-4所示。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-4 創(chuàng)建遮罩層

(5)新建一個“按鈕背景”圖層,然后將按鈕復制到該圖層中,并將第1個色標的Alpha調(diào)整為10%,再將第2個色標向左移動一些像素,如圖9-5所示。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-5 繪制按鈕明暗部分

(6)新建一個“高光”圖層,然后使用“橢圓工具”繪制一個橢圓,并設置填充類型為“線性”,第1個色標顏色為(R:255,G:255,B:255),Alpha為70%,第2個色標顏色為(R:255,G:255,B:255),Alpha為50%,第3個色標顏色為(R:255,G:255,B:255),Alpha為0%,如圖9-6所示。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-6 繪制按鈕高光

Part 2 添加控制程序

(1)在“庫”面板中為button影片剪輯添加元件類,并將基類修改為Sprite類,如圖9-7所示。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-7 添加元件類

(2)返回到“場景1”,新建一個AS圖層,然后在第1幀輸入代碼。本例用到緩沖原理,所以要先導入Tweener類;第3~6行代碼是經(jīng)常使用到的一種編程方式,首先創(chuàng)建一個容器來存儲所有的對象,便于統(tǒng)一控制,然后使用for()循環(huán)語句創(chuàng)建12個按鈕元件類對象(如第15~20行代碼)。

AS3代碼

import caurina.transitions.Tweener;//導入Tweener類   
//創(chuàng)建一個容器,用于存儲本例中的所有創(chuàng)建的對象   
var container_mc:Sprite = new Sprite();   
container_mc.x = stage.stageWidth/2; //定位在舞臺中心   
container_mc.y = stage.stageHeight/2;   
addChild(container_mc);   
  
var angle:uint=0; //角度   
var R:Number = 100; //圓的半徑   
var _length:uint = 12; //按鈕個數(shù)   
var newX = 0; //被單擊的按鈕X坐標   
var newY = 0; //被單擊的按鈕Y坐標   
for (var i=0; i<=_length; i++) {   
  
    var _mc:Sprite = new button();   
    _mc.buttonMode = true;   
    _mc.name = "mc" + i;   
  
       
    _mc.addEventListener(MouseEvent.CLICK,clickHandler);   
    container_mc.addChild(_mc);   
  
    if (i == _length) {   
        _mc.x = newX;   
        _mc.y = newY;   
        //指定此對象禁止接收鼠標消息   
        _mc.mouseEnabled = false;   
        Tweener.addTween(_mc, {scaleX:2, scaleY:2, time:1, transition:"easeInOutQuint"});   
    } else {   
        angle += 30;   
        var radians:Number = angle * Math.PI / 180;   
  
        var X:Number = Math.cos(radians) * R;   
        var Y:Number = Math.sin(radians) * R;   
  
        _mc.x = X;   
        _mc.y = Y;   
    }

(3)第22~29行代碼是利用三角函數(shù)來進行精確定位,首先通過for()循環(huán)創(chuàng)建_length個按鈕對象,然后進行角度上的遞增30(angle += 30),在已知半徑和角度后,便可以通過三角函數(shù)來求得各不同角度的按鈕坐標位置,其主要原理如圖9-8所示。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-8 三角函數(shù)原理

(4)創(chuàng)建后的按鈕排序原理圖和發(fā)布影片后的效果如圖9-9和圖9-10所示,其中原理圖中的坐標原點為container_mc容器的原點位置。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-9 按鈕排序原理圖

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-10 發(fā)布效果

(5)下面進一步判斷和定位按鈕的位置,第23~29行代碼,判斷i的值是否等于按鈕的總個數(shù),如果等于就將按鈕的坐標設置為(newX,newY),即(0,0),也就是將按鈕位置設置在container_mc容器的原點位置,并使用Tweener類的addTween()方法將其寬/高縮放比例(scaleX, scaleY)都設置為2,影片的發(fā)布效果如圖9-11所示。

AS3代碼

import caurina.transitions.Tweener;//導入Tweener類   
//創(chuàng)建一個容器,用于存儲本例中的所有創(chuàng)建的對象   
var container_mc:Sprite = new Sprite();   
container_mc.x = stage.stageWidth/2; //定位在舞臺中心   
container_mc.y = stage.stageHeight/2;   
addChild(container_mc);   
  
var angle:uint=0; //角度   
var R:Number = 100; //圓的半徑   
var _length:uint = 12; //按鈕個數(shù)   
var newX = 0; //被單擊的按鈕X坐標   
var newY = 0; //被單擊的按鈕Y坐標   
for (var i=0; i<=_length; i++) {   
  
    var _mc:Sprite = new button();   
    _mc.buttonMode = true;   
    _mc.name = "mc" + i;   
  
       
    _mc.addEventListener(MouseEvent.CLICK,clickHandler);   
    container_mc.addChild(_mc);   
  
    if (i == _length) {   
        _mc.x = newX;   
        _mc.y = newY;   
        //指定此對象禁止接收鼠標消息   
        _mc.mouseEnabled = false;   
        Tweener.addTween(_mc, {scaleX:2, scaleY:2, time:1, transition:"easeInOutQuint"});   
    } else {   
        angle += 30;   
        var radians:Number = angle * Math.PI / 180;   
  
        var X:Number = Math.cos(radians) * R;   
        var Y:Number = Math.sin(radians) * R;   
  
        _mc.x = X;   
        _mc.y = Y;   
    }

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-11 發(fā)布效果

(6)下面創(chuàng)建動態(tài)文本對象,為按鈕添加文字。第39~47代碼創(chuàng)建一個不能被選擇且禁止接收鼠標消息的動態(tài)文本,并設置樣式和文本位置。其中第42行代碼禁止接收鼠標事件(如指針經(jīng)過或單擊等事件);第43行代碼是設置字體樣式并調(diào)用 defaultTextFormat()方法,該方法返回一個文本格式對象(TextFormat),然后賦給defaultTextFormat屬性(指定應用于新插入文本的格式)。

AS3代碼

        var X:Number = Math.cos(radians) * R;   
        var Y:Number = Math.sin(radians) * R;   
  
        _mc.x = X;   
        _mc.y = Y;   
    }   
    var _text:TextField = new TextField();   
    _text.width = _text.height = 40;//因為默認情況下寬高都為100   
    _text.selectable = false; //文字不被選擇   
    _text.mouseEnabled = false; //指定此對象禁止接收鼠標消息   
    _text.defaultTextFormat = defaultTextFormat(); //設置字體樣式   
    _text.text = i;   
    _text.x = -_text.textWidth/2 - 2; //設置字體位置   
    _text.y = -_text.textHeight/2;   
    _mc.addChild(_text); //字體添加到對應按鈕中   
}   
  
function defaultTextFormat():TextFormat {   
    var format:TextFormat = new TextFormat();   
    format.font = "黑體";    
    format.color = 0xFFFFFF;   
    format.size = 20;   
    format.bold = true;   
    return format   
}   
  
function clickHandler(e:MouseEvent) {   
    var _mc:Sprite = e.target as Sprite;   
    newX = _mc.x;   
    newY = _mc.y;   
       
    Tweener.addTween(_mc, {x:0, y:0,scaleX:2, scaleY:2, time:1, transition:"easeInOutQuint"});   
    Tweener.addTween(container_mc.getChildAt(_length), {x:newX, y:newY,scaleX:1, scaleY:1, time:1, transition:"easeInOutQuint"});   
    _mc.mouseEnabled = false;   
    var mc:Sprite = container_mc.getChildAt(_length) as Sprite  
    mc.mouseEnabled = true;   
    container_mc.swapChildren(container_mc.getChildAt(_length),_mc);   
       
}

技巧與提示:

因為本例所編寫的代碼有70多行,為了更好地幫助用戶理解,因此分塊進行展示,用戶可以打開源文件來查看所有的代碼,關(guān)于更多文本格式(TextFormat)的詳細信息可參考幫助文檔。

步驟(5)中的第20行代碼是為按鈕注冊事件偵聽,偵聽器函數(shù)為步驟(6)中的第59行代碼clickHandler()函數(shù),該函數(shù)的作用是當按鈕被鼠標單擊后,與中間按鈕進行位置的切換,其原理如圖9-12所示。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-12 clickHandler()函數(shù)原理圖

(7)在clickHandler()函數(shù)中,首先取得被單擊按鈕的坐標位置(如步驟(6)中的第61和62行代碼),當按鈕被單擊時,被單擊按鈕緩沖運動到container_mc容器的中間(也就是原點(0,0))時會縮放2倍(如步驟(6)中的第64行代碼中的Tweener類方法),同時位于舞臺中間的按鈕會運動到被單擊按鈕的坐標位置(newX,newY),這樣就會產(chǎn)生切換效果(如步驟(6)中的第65行代碼),如圖9-13所示,這里還通過container_mc.getChildAt(_length)方法來取得中間按鈕,并通過69行代碼中的swapChildren()方法來進行交換z軸順序(也稱深度)。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-13 按鈕的切換效果

技術(shù)看板:深度設置

重新設置容器列表中對象所在的深度,可以使用顯示對象容器.setChildIndex的方法來設置,下面列出幾種最為常用的方法,用戶可直接套用。

AS3代碼

//(1):用于將“要顯示的對象”進行置頂   
顯示對象容器.setChildIndex(要顯示的對象,要顯示對象容器.numChildren-1)   
  
//(2):用于將“要顯示的對象”進行置底   
顯示對象容器.setChildIndex(要顯示的對象,0)   
  
//(3):用于將“要顯示的對象A”插入“顯示對象B”之前   
var target:DisplayObject = 顯示對象容器.getChildByName("顯示對象B")   
顯示對象容器.setChildIndex(顯示對象A,顯示對象容器.getChildIndex(target))   
  
  
//(3):用于將“要顯示的對象A”插入“顯示對象B”之后   
var target:DisplayObject = 顯示對象容器.getChildByName("顯示對象B")   
顯示對象容器.setChildIndex(顯示對象A,顯示對象容器.getChildIndex(target)-1)

(8)到該步驟已經(jīng)完成該實例的制作,用戶可采用相同的方法進行思路擴展,制作出其他相似的效果,如圖9-14所示。

Flash CS4制作切換放大菜單效果,PS教程,思緣教程網(wǎng)

圖9-14 思路擴展

(9)按Ctrl+Enter組合鍵發(fā)布本例。

教程結(jié)束,以上就是利用Flash CS4遮罩功能及添加代碼來制作切換放大菜單效果,制作過程有點復雜,但很實用,希望對大家有所幫助!

相關(guān)文章

  • flash如何制作形狀補間動畫?flash創(chuàng)建補間形狀技巧

    flash一款功能強大的動畫制作軟件,制作動畫很非常的方便,但動畫過程使用的都是形狀補間功能。今天小編就來給大家介紹一下flash形狀補間動畫制作方法,感興趣的快來看看吧
    2022-05-11
  • flash cs6怎么做花朵成長的逐幀動畫?

    flash cs6怎么做花朵成長的逐幀動畫?flash中想要繪制一個花開的動畫,該怎么畫出各個圖形然后做逐幀動畫呢?下面我們就來看看詳細的教程,需要的朋友可以參考下
    2021-03-09
  • Flash怎么將動畫復制為ActionScript3.0并使用?

    Flash怎么將動畫復制為ActionScript3.0并使用?Flash中制作的動畫想要直接粘貼到另一個對象中,我們可以使用復制腳本代碼的方式復制動畫,下面我們就來看看詳細的教程,需
    2017-12-08
  • flash怎么制作漫畫人物行走的動畫?

    flash怎么制作漫畫人物行走的動畫?flash中想要制作一段行走的動畫,該怎么設計呢?下面我們就來看看詳細的教程,很簡單,需要的朋友可以參考下
    2017-04-18
  • flash逐幀動畫制作全過程解析

    這篇教程是向腳本之家的朋友分享flash逐幀動畫制作全過程,教程非常基礎(chǔ),很適合新手來學習,推薦過來,有興趣的朋友可以過來學習
    2016-01-15
  • Flash正確的口型吻合動畫技巧

    下面小編就為大家介紹利用Flash正確的口型吻合動畫技巧,教程很不錯,非常適合新手來學習,推薦到腳本之家,喜歡的朋友一起來學習吧
    2015-01-15
  • Flash動畫制作技巧 圖形元件相關(guān)知識介紹

    這篇教程是向腳本之家的朋友介紹Flash動畫制作技巧:圖形元件相關(guān)知識,教程很基礎(chǔ),但很實用,推薦到腳本之家,喜歡的朋友可以過來學習一下,希望能對大家有所幫助
    2015-01-05
  • Flash動畫制作小黑人經(jīng)典動畫效果技巧介紹(圖文)

    本教程是向大家介紹Flash動畫制作小黑人經(jīng)典動畫效果技巧,教程很經(jīng)典,介紹的非常詳細,相信對學習Flash朋友有一定的幫助。轉(zhuǎn)發(fā)過來,希望對大家有所幫助
    2014-08-05
  • Flash制作旋轉(zhuǎn)的3D立體盒動畫教程

    本教程是向大家介紹利用Flash制作旋轉(zhuǎn)的3D立體盒動畫教程,制作出來的效果非常好看,教程介紹的很詳細,希望大家通過本篇教程能學習Flash制作3D動畫的方法,這樣以后就可以
    2014-07-22
  • Flash cs3制作人物行走動畫技巧圖文解析

    本教程向大家介紹了Flash cs3制作人物行走動畫技巧,并做了詳細的介紹,覺得教程很不錯,轉(zhuǎn)發(fā)過來,希望給朋友們帶來幫助
    2014-07-15

最新評論

务川| 玛曲县| 墨玉县| 隆尧县| 西充县| 定陶县| 江陵县| 靖边县| 彰化市| 舟曲县| 灵武市| 简阳市| 屏东市| 凌海市| 郑州市| 太湖县| 青神县| 麟游县| 宽甸| 大荔县| 沂南县| 饶平县| 宝坻区| 遂昌县| 三原县| 揭西县| 寿阳县| 丰顺县| 广汉市| 斗六市| 嵊泗县| 延边| 定兴县| 扶余县| 莆田市| 淮阳县| 诸暨市| 姚安县| 景东| 吉木乃县| 东乌珠穆沁旗|