中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 多媒體制作 > XML動(dòng)態(tài)菜單
巧用Bitmap類制作按鈕 回到列表 Flash破解與加密
 XML動(dòng)態(tài)菜單

作者:markmaoji 時(shí)間: 2007-01-29 文檔類型:原創(chuàng) 來自:藍(lán)色理想

第 1 頁 XML動(dòng)態(tài)菜單 [1]
第 2 頁 XML動(dòng)態(tài)菜單 [1]

大家都喜歡XML,因?yàn)樗∈,我平時(shí)做東西也盡可能的用XML,因?yàn)閷?shí)在是日后更新修改太方便了,都不用動(dòng)fla源文件。

本XML系列教程將分三部分發(fā)布,到最后一期我們將擁有一個(gè)功能全面,更加友好的XML菜單。本教程這個(gè)第一期涉及到了一些XML的基礎(chǔ)知識(shí)。

這里我們要做的效果是一個(gè)縱向排列的動(dòng)態(tài)XML的菜單,并且當(dāng)鼠標(biāo)滑動(dòng)到菜單上顯示相應(yīng)的縮略圖,這個(gè)我們?cè)诤芏鄶z影作品展示flash網(wǎng)站經(jīng)常見到的。在線展示:http://www.keyframe1.com/tute/xmlMenu/

第一步, 分析項(xiàng)目

組成部分:
      - XML文件;
      - FLASH源文件;
      - 縮略圖JPG文件,50px X 50px 存放在 thumb文件夾;
 步驟:
      - 先寫XML文件 (這個(gè)很簡單,我們將不再講怎么寫XML文件);
      - 在FLASH中建立所需元素;
      - actionscripting

第二步,開始建立我們需要的一些元素,并把它們擺到大概理想的位置

  •  一個(gè)放所有縮略圖的母影片剪輯,我們叫做container 50px寬,高盡量大些;
  • 一個(gè)遮罩影片剪輯,叫做mask 50px X 50 px;
  • 一個(gè)外框影片剪輯,只是為了美觀,叫做br,尺寸比mask大一圈就可以了;
  • 把這三個(gè)影片剪輯在工作去擺到大概理想的位置,確定它們的X坐標(biāo),Y坐標(biāo)無所謂因?yàn)橄旅嫖覀円肁S來控制它們的Y坐標(biāo)的;

(好了,主時(shí)間工作區(qū)的事情就是這些,現(xiàn)在我們建立一個(gè)代碼的圖層,把剩下所有的工作交給actionscript)

第三步,actionscripting

//先聲明一些變量

var menut:Number = 30; //菜單頂部Y坐標(biāo)
var menul:Number = 300; //菜單左側(cè)X坐標(biāo)
var home:MovieClip = this;
var mlh:Number = 20; //菜單文字行距
var tlh:Number = 60; //縮略圖行距
var speed:Number = 3; //緩動(dòng)速度

//建立XML對(duì)象,提取XML數(shù)據(jù),建立菜單的鼠標(biāo)滑動(dòng)觸發(fā)的縮略圖,遮罩影片剪輯的代碼... 內(nèi)容較多,盡量解釋

var myx:XML = new XML();
myx.ignoreWhite = true;
myx.onLoad = function()
{
    var nodes = this.firstChild.childNodes; //提取XML數(shù)據(jù)
    numMenu = nodes.length; //使用XML的關(guān)鍵,這個(gè)變量自動(dòng)儲(chǔ)存XML數(shù)據(jù)的節(jié)數(shù),這樣日后我們就可以只更新(添加/減少)XML文件 Flash就會(huì)自動(dòng)更新
    for(var i=0; i<numMenu; i++)
    {
        //建立子影片剪輯載入縮略圖
        var holder:MovieClip = container.createEmptyMovieClip("holder" + i, i); //在母影片剪輯里建立相等數(shù)量的字影片剪輯以載入縮略圖
        container["holder" + i]._x = 0; //定位
        container["holder" + i]._y = tlh * i;
        container["holder" + i].loadMovie(nodes[i].attributes.thumb); //載入縮略圖
       
        //建立遮罩
        container.setMask(mask);
       
        //建立菜單
        var menu = home.createEmptyMovieClip("menu" + i, i+40); //建立相等數(shù)量的空影片剪輯以存放菜單文字
        menu._x = menul;
        menu._y = menut + (mlh * i);
        menu.moveTo(menul, menut);
        menu.createTextField("btxt", 0, 0, 0, 150, 20); //建立動(dòng)態(tài)文本存放文字
        menu.btxt.html = true;
        menu.btxt.wordWrap = true;
        menu.btxt.text = (nodes[i].attributes.nav); //載入文字
       
        //菜單文字樣式
        btntf = new TextFormat();
        btntf.color = 0x666666;
        btntf.font = "verdana";
        btntf.leading = 10;
        btntf.size = 10;
        menu.btxt.setTextFormat(btntf);
       
        //儲(chǔ)存i的值,這一步非常重要
        menu.i = i;
       
        //菜單鼠標(biāo)滑入,滑出,點(diǎn)擊時(shí)的代碼
        menu.onRollOver = function()
        {
            var who:Number = this.i; //提取當(dāng)前 i
            maskdy = menut + (mlh * who) - 15; //遮罩位置根據(jù)當(dāng)前 i,即當(dāng)前菜單按鈕來計(jì)算
            containdy = maskdy - (tlh * who); //遮罩中縮略圖的位置根據(jù)在遮罩位置的基礎(chǔ)上再根據(jù)當(dāng)前 i 計(jì)算出來
            speed = 3; //當(dāng)鼠標(biāo)滑入菜單是把速度提高 (speed值越小,速度越高,因?yàn)榫弰?dòng)函數(shù)中y的位移根speed是相除關(guān)系,這里我們的設(shè)置將使鼠標(biāo)滑入菜單按鈕時(shí)提高遮罩和縮略圖的緩動(dòng)速度,當(dāng)然隨便您啦,您當(dāng)然也可以相反讓他們變得更慢,完全是個(gè)人喜好
            menutf = new TextFormat();
            menutf.underline = true; //鼠標(biāo)滑入時(shí)菜單上文字加下劃線
            this.btxt.setTextFormat(menutf);
        }
        menu.onRollOut = function()
        {
            var who:Number = this.i; //提取當(dāng)前 i
            var offy = Stage.height + 50;
            maskdy = offy; //當(dāng)鼠標(biāo)滑出菜單時(shí)把遮罩和縮略圖移出舞臺(tái),我們選擇移到舞臺(tái)下方,當(dāng)然您也可以把它們移到上方看不到的地方,或者自己編寫透明度的緩動(dòng)函數(shù)讓它們的透明度緩動(dòng)淡出
            containdy = offy - (tlh * who); //同樣縮略圖的緩動(dòng)位置也相對(duì)其當(dāng)前位置相應(yīng)的移出舞臺(tái)
            speed = 10; //設(shè)置緩動(dòng)速度,使移出時(shí)速度變慢
            menutf = new TextFormat();
            menutf.underline = false;
            this.btxt.setTextFormat(menutf);
        }
        menu.onRelease = function()
        {
            var who:Number = this.i; //提取當(dāng)前 i
            var link:String = nodes[who].attributes.url; //把XML中url儲(chǔ)存到變量link中
            getURL(link, "_blank");
        }
    }
}

myx.load("xmlMenu.xml")

//到這里基本上完成了,下面只需要把用到一些緩動(dòng)函數(shù)加上就可以了;

//遮罩影片剪輯的緩動(dòng)函數(shù)
mask.onEnterFrame = function()
{
    maskoldy = this._y;
    this._y += (maskdy - maskoldy) / 7;
}

//縮略圖母影片剪輯的緩動(dòng)函數(shù)
container.onEnterFrame = function()
{
    containoldy = this._y;
    this._y += (containdy - containoldy) / 7;
}

//縮略圖外框的緩動(dòng)函數(shù)
br.onEnterFrame = function()
{
    brdy = maskdy;
    broldy = this._y;
    this._y += (brdy - broldy) / 7;
}

//初始化遮罩縮略圖位置
maskdy = menut + (mlh * 0) - 15;
containdy = maskdy - (tlh * 0);

// 這個(gè)是這里我們用到的XML文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<xmeMenu>
<menu nav="Volkswagen Phaeton" url="<menu nav="Volkswagen Touareg" url="<menu nav="KeyFrame1 Digital" url="<menu nav="I-Jar Layout" url="<menu nav="CGRN e-Learning" url="<menu nav="Wild Product" url="<menu nav="Chinese Made Easy" url="<menu nav="Jin Shun Jin Da" url="<menu nav="KeyFrame1 Flash beta" url="<menu nav="Volkswagen New Beetle" url="<menu nav="Volkswagen Revamp" url="<menu nav="VW New Beetle Cabriolet" url="<menu nav="KeyFrame1 Flash beta" url="<menu nav="Volkswagen New Beetle" url="<menu nav="Volkswagen Revamp" url="<menu nav="VW New Beetle Cabriolet" url="</xmeMenu>

現(xiàn)在可以試著修改,刪除或者添加我們的XML,你會(huì)發(fā)現(xiàn)我們的swf文件自動(dòng)更新數(shù)據(jù)了。在未來的XML菜單系列教程中,我們會(huì)在這個(gè)教程的基礎(chǔ)上繼續(xù)豐富這個(gè)XML菜單的功能。

源碼下載kf1_xmlMenu.zip

經(jīng)典論壇討論
http://bbs.blueidea.com/thread-2707340-1-1.html

出處:藍(lán)色理想
責(zé)任編輯:blue

上一頁 下一頁 XML動(dòng)態(tài)菜單 [1]

◎進(jìn)入論壇Flash專欄版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
Bcastr3.0 flash通用圖片播放器
Flash破解與加密
如何生成XML數(shù)據(jù)
flash9.ocx 加載錯(cuò)誤解決方法
《Flash網(wǎng)站建設(shè)技術(shù)精粹》
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大福“敬•自然”設(shè)計(jì)大賽開啟
國際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺(tái)歷
Ps簡單繪制一個(gè)可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:1/21個(gè)記錄/頁 轉(zhuǎn)到 頁 共2個(gè)記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請(qǐng)不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請(qǐng)與我們聯(lián)系,我們將立即刪除修改。

您的評(píng)論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評(píng)論。如果您不是本站會(huì)員,你可以注冊(cè) 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請(qǐng)用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評(píng)分 1 2 3 4 5
注意:請(qǐng)不要在評(píng)論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請(qǐng)您注意:
·不良評(píng)論請(qǐng)用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評(píng)論管理人員有權(quán)保留或刪除其管轄評(píng)論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評(píng)論文檔 | 報(bào)告錯(cuò)誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2