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

您的位置: 首頁 > 技術(shù)文檔 > 多媒體制作 > Flash MX 2004 數(shù)據(jù)綁定
通用滾動(dòng)條配色工具 回到列表 Flash dynamic mask 動(dòng)態(tài)遮罩
 Flash MX 2004 數(shù)據(jù)綁定

作者:egoldy 時(shí)間: 2005-03-06 文檔類型:原創(chuàng) 來自:WebStudio

第 1 頁 Flash MX 2004 數(shù)據(jù)綁定 [1]
第 2 頁 Flash MX 2004 數(shù)據(jù)綁定 [2]

本文作者:Mizarli
文章出處:ultrashock
本文譯者:egoldy
英文原版鏈接為:http://www.ultrashock.com/tutorials/flashmx2004/databinding.php

創(chuàng)世之初...

創(chuàng)世之初上帝創(chuàng)造了天空和大地。當(dāng)時(shí)大地是無定形的、方塊的,所以上帝創(chuàng)造了Flash并發(fā)現(xiàn)它用起來還不錯(cuò)。那是第一天的事了。到了第四天,上帝已經(jīng)不滿足于普通的動(dòng)畫了,所以他引入了ActionScript。到了第五天,上帝摒棄了舊式的ActionScript并重新開始構(gòu)建,但僅僅是使AS更規(guī)范了些。到了第六天,AS得到了補(bǔ)充并且上帝創(chuàng)造了組件。后來,上帝發(fā)現(xiàn)組件很孤獨(dú)就創(chuàng)造了數(shù)據(jù)流,通過它,組件可以被綁定在一起,分享數(shù)據(jù)綜合的樂趣。第七天,上帝打算休息了,但在發(fā)明了Flash甚至更好的是在創(chuàng)作環(huán)境中整合了數(shù)據(jù)綁定功能和整齊的組件構(gòu)架。

那么,什么是數(shù)據(jù)綁定呢?

也許你已經(jīng)認(rèn)識(shí)到:數(shù)據(jù)綁定對于Flash來說已經(jīng)不是新特性了,但是自從加強(qiáng)了對FlashMX的改善后,已經(jīng)有了極大的提高。簡單地說,數(shù)據(jù)綁定是一種簡單的方法——不費(fèi)太多功夫,就可以把你的數(shù)據(jù)捆綁在一起。你可以協(xié)調(diào)不同用UI(user interface)組件的屬性,甚至可以通過數(shù)據(jù)組件把它們與服務(wù)器端的數(shù)據(jù)相連。數(shù)據(jù)綁定不需要懂得復(fù)雜的AS或者懂得操作XML,而是把這項(xiàng)操作減小到用簡單的“點(diǎn)擊”操作就能完成。數(shù)據(jù)綁定是快速應(yīng)用程序開發(fā)(RAD)的一個(gè)關(guān)鍵的特性也是原型開發(fā)的利器。

點(diǎn)對點(diǎn)(point-and-click)數(shù)據(jù)綁定本質(zhì)上是通過運(yùn)行時(shí)數(shù)據(jù)綁定應(yīng)用程序接口(API)實(shí)現(xiàn)的。假如在你的影片里包含了需要的資源,你也可以通過腳本來訪問它。這僅僅需要復(fù)制公用庫里的數(shù)據(jù)綁定類符號(hào)(Data Binding Classes),可以在Flash菜單中找到它:

窗口——其他面板——公用庫——類。這是最好的方法,如果你僅需要建立到動(dòng)態(tài)內(nèi)容的綁定或者僅僅喜歡在代碼環(huán)境下工作。然而,我們現(xiàn)在關(guān)注的是可視化的界面。

在開始之前,在這里請先下載源文件并解壓縮到一個(gè)新目錄中。

尋找你的方向

開始吧!讓我們來看看用來實(shí)現(xiàn)數(shù)據(jù)綁定的新面板。開始時(shí)會(huì)有點(diǎn)心慌,但我們將很快適應(yīng)它。我已經(jīng)把它們布置好了,以組件面板開始,結(jié)束于組件檢查器中的“架構(gòu)標(biāo)簽”。別多想,繼續(xù)學(xué)習(xí)!

組件面板

組件檢查器:參數(shù)標(biāo)簽

組件檢視面板:綁定標(biāo)簽

組件檢視面板:架構(gòu)標(biāo)簽

基本的組件

既然組件面板讓我們有點(diǎn)慌亂,那就從這開始學(xué)習(xí)吧。我們要建立一個(gè)非常簡單的在兩個(gè)單選按鈕(CheckBox)之間的綁定,像這樣:

CheckBoxes.fla 

單點(diǎn)每個(gè)單選按鈕時(shí),你會(huì)發(fā)現(xiàn)另外一個(gè)也發(fā)生了同樣的變化。這就是我們要達(dá)到的目的。
1、    從組件面板拖拽出兩個(gè)單選按鈕,分別給這兩個(gè)實(shí)例命名為checkBox1和checkBox2 ;
2、    打開組件面板的“綁定”標(biāo)簽,然后選擇checkBox1,這時(shí)的面板應(yīng)該是空的,因?yàn)檫沒有建立任何綁定;
3、    點(diǎn)擊按鈕,會(huì)彈出“添加綁定”面板;
4、    我們要綁定的是已選的checkBox的selected屬性,所以點(diǎn)擊名為“selected:Boolean”即可,然后點(diǎn)擊“OK”;

5、在綁定標(biāo)簽下顯示了一個(gè)新建的綁定,F(xiàn)在我們把它和其他對象連接起來。雙擊參數(shù)列表中的“bound to”參數(shù)的空白區(qū)(會(huì)有“綁定到”窗口彈出),通過選擇“組件路徑”checkBox2的“架構(gòu)位置” selected屬性,完成綁定,如下所示:

6、    好了,測試你的影片吧!

盡管看起來不錯(cuò),但是還不是很嚴(yán)密的。有一個(gè)面板我們還沒看到。最使人煩亂的“架構(gòu)”標(biāo)簽。組件的架構(gòu)標(biāo)簽是對組件數(shù)據(jù)結(jié)構(gòu)的一個(gè)概括。在一個(gè)單選按鈕的情況下,是最簡單的,默認(rèn)為一個(gè)屬性——決定它是被選中還是未被選中。你可以看到“selected”字樣顯示在剛建立的單選按鈕的列表里。源文件名為CheckBoxes.fla

架構(gòu)

使用架構(gòu)面板,我們不會(huì)受限制于默認(rèn)條件。我們可以在這加入新的屬性,并且這些屬性是可控的有用的。通常這不用做太多,因?yàn)閷傩圆⒉灰馕度魏螙|西,但事實(shí)上你可以建立更多的組件屬性來提供數(shù)據(jù)綁定。

第二個(gè)例子,我們要綁定兩個(gè)單選按鈕,不過這次綁定一個(gè)組件的“可用”屬性,用它來激活另一個(gè)組件。:

CheckBoxes_enabled.fla

注意選擇或者取消選擇單選按鈕1可以激活或不激活單選按鈕2。這更有用處。你可以用這樣的功能,在表單中根據(jù)用戶的選擇來激活或者不激活表單中的其他部分。讓我們開始吧。

1、    開始前去掉例1中已綁定的選項(xiàng),選擇任何一個(gè)單選按鈕,然后選擇綁定標(biāo)簽,單擊 按鈕;
2、    選擇組件實(shí)例“checkBox2”,點(diǎn)擊架構(gòu)標(biāo)簽,點(diǎn)擊 增加一個(gè)新屬性;
3、    在架構(gòu)面板下會(huì)有很多信息顯示出來,但是別擔(dān)心,本例中不需要太多的設(shè)置。僅僅設(shè)置“field name”參數(shù)為“enabled”,“data type”參數(shù)為“Boolean”。

4、    現(xiàn)在象前面所做的一樣,建立幫定。不過這回是綁定單選按鈕1的“selected”屬性到單選按鈕2的“enabled”屬性上,測試一下!

是不是目前所有的數(shù)據(jù)都是基于XML呢?

是的!所以要熟悉它,否則就有被淘汰的可能!除XML以外其他的方法都會(huì)在數(shù)據(jù)綁定上遇到困難!接下來,我們將引入XML架構(gòu),然后從外部的XML文件移植數(shù)據(jù)做菜單條,用XMLConnector組件。

首先你應(yīng)該知道菜單條組件,實(shí)際上有許多XML驅(qū)動(dòng)的組件(比如菜單、菜單條、目錄樹),只是XML節(jié)點(diǎn)的名字被忽略了,僅僅使用了XML的屬性。下面就是一個(gè)XML文件例子:

代碼:
<menu>
    <menu-title label="file">
        <menu-item label="load" />
        <menu-item label="save" />
        <menu-item label="print" />
    </menu-title>
    <menu-title label="edit">
        <menu-item label="cut" />
        <menu-item label="copy" />
        <menu-item label="paste" />
        <menu-item label="sub-menu">
            <menu-item label="nothing here" />
        </menu-item>
    </menu-title>
</menu>

xmlMenu.swf文件演示

(xmlMenu.fla)

架構(gòu)面板將給我們帶來的更多的便利。我們將用XMLConnector組件載入數(shù)據(jù),而用架構(gòu)面板指引菜單引用相應(yīng)部分的XML文件。

1、首先,我們需要在舞臺(tái)上放置一個(gè)菜單條組件Menu和一個(gè)XMLConnector組件,分別為組件實(shí)例命名menuBar和xmlConnector。你可以把XMLConnector組件放在舞臺(tái)的任意位置,因?yàn)榘l(fā)布時(shí),它是不可見的;
2、    接下來,需要設(shè)置XMLConnector組件來加載數(shù)據(jù)。要達(dá)到這個(gè)目的,請?jiān)诮M件參數(shù)面板中使用如下的設(shè)置:

menu.xml是XML文件名,請注意在direction參數(shù)設(shè)置為receive,因?yàn)檫@是一個(gè)靜態(tài)的XML文檔;
3、    接下來增加些智能化設(shè)置。我們用架構(gòu)面板來告訴XMLConnector,什么樣的XML文件是可以接受的。確定XMLConnector組件處在被選擇狀態(tài),打開組件屬性檢查器的架構(gòu)標(biāo)簽;
4、    選擇架構(gòu)標(biāo)簽下的“results”屬性,因?yàn)閿?shù)據(jù)將加載到這里。點(diǎn)擊 按鈕導(dǎo)入一個(gè)XML架構(gòu),導(dǎo)航欄中選擇“menu.xml”文件,選擇打開選項(xiàng)。你的架構(gòu)面板看起來將會(huì)是如下的樣子:

所有這些信息是為了說明你的XML文檔的結(jié)構(gòu)。Flash會(huì)發(fā)現(xiàn)重復(fù)的元素并將它們視為數(shù)組,F(xiàn)lash也偵查象這樣的值“true”或者“1”并把它們做為Boolean或 Number類型的值,F(xiàn)在我們只對根節(jié)點(diǎn)和菜單感興趣;
5、    選擇 menuBar組件并打開屬性檢查器的綁定標(biāo)簽。menuBar組件默認(rèn)有一個(gè)可綁定屬性、數(shù)據(jù)源屬性;
6、    增加一個(gè)到數(shù)據(jù)源的綁定,象我們在例2中做的那樣:

選擇菜單節(jié)點(diǎn),數(shù)據(jù)綁定完成

7、    還有件事我們還沒有做:加載XML文檔;只需要在主時(shí)間線放一小段代碼:
xmlConnector.trigger();

8、測試影片吧!

數(shù)組和索引

現(xiàn)在,大部分的數(shù)據(jù)綁定是使用數(shù)組完成的,這是通過基于列表的組件(比如List組件、DataGrid組件或ComboBox組件)完成的。Flash可以探測到XML架構(gòu)中重復(fù)的節(jié)點(diǎn),并且把它們作為一個(gè)數(shù)組來處理。作為示范,我們將建立一個(gè)小的簡單的應(yīng)用程序,它用來顯示家務(wù)活的值班表。

selectIndex.swf文件演示在這里

selectIndex.fla

以下是驅(qū)動(dòng)這一程序的XML 代碼:

代碼:
<chores title="House Work Rota">
<day label="monday">
  <job description="dishes" person="john" time="15 mins" />
  <job description="cooking" person="sam" time="1 hour" />
  <job description="walking dog" person="david" time="30 mins" />
  <job description="laying the table" person="peter" time="5 mins" />
  <job description="slacking off" person="elisabeth" time="all day" />
  </day>
<day label="tuesday">
  <job description="dishes" person="david" time="25 mins" />
  <job description="cooking" person="peter" time="1 hour" />
  <job description="walking dog" person="sam" time="20 mins" />
  <job description="laying the table" person="john" time="15 mins" />
  <job description="slacking off" person="elisabeth" time="all day" />
  </day>
<day label="wednesday">
  <job description="dishes" person="sam" time="20 mins" />
  <job description="cooking" person="david" time="1 hour" />
  <job description="walking dog" person="peter" time="30 mins" />
  <job description="laying the table" person="john" time="15 mins" />
  <job description="slacking off" person="elisabeth" time="all day" />
  </day>
<day label="thursday">
  <job description="dishes" person="peter" time="3 hours" />
  <job description="cooking" person="john" time="1 hour" />
  <job description="walking dog" person="david" time="30 mins" />
  <job description="laying the table" person="sam" time="10 mins" />
  <job description="slacking off" person="elisabeth" time="all day" />
  </day>
<day label="friday">
  <job description="dishes" person="sam" time="20 mins" />
  <job description="cooking" person="sam" time="1 hour" />
  <job description="walking dog" person="peter" time="20 mins" />
  <job description="laying the table" person="sam" time="5 mins" />
  <job description="slacking off" person="elisabeth" time="all day" />
  </day>
<day label="saturday">
  <job description="dishes" person="john" time="1 hour" />
  <job description="cooking" person="john" time="1 hour" />
  <job description="walking dog" person="david" time="30 mins" />
  <job description="clean car" person="sam" time="30 mins" />
  <job description="laying the table" person="david" time="10 mins" />
  <job description="slacking off" person="elisabeth" time="all day" />
  </day>
<day label="sunday">
  <job description="dishes" person="peter" time="20 mins" />
  <job description="cooking" person="david" time="1 hour" />
  <job description="walking dog" person="peter" time="20 mins" />
  <job description="laying the table" person="john" time="5 mins" />
  <job description="slacking off" person="elisabeth" time="all day" />
  </day>
  </chores>

那么我們從哪里入手呢?
首先導(dǎo)入我們的XML架構(gòu),在舞臺(tái)上放置一個(gè)XMLConnector組件實(shí)例(并命名,因?yàn)闆]有命名的組件實(shí)例是不允許進(jìn)行綁定的),導(dǎo)入文件“chores2.xml”——確認(rèn)把它導(dǎo)入到results參數(shù)里而不是其他參數(shù);接下來我們要綁定驅(qū)動(dòng)應(yīng)用程序的數(shù)據(jù)到comboBox組件上。注意XML的屬性——存儲(chǔ)一周中的每一天作為標(biāo)簽。這會(huì)是很便利的,因?yàn)檫@正是comboBox組件需要的,但通常這不是最好的習(xí)慣。我們將在名字為“格式化”的部分看到更適合的用法。

綁定comboBox的數(shù)據(jù)驅(qū)動(dòng)程序到XML文檔源:
1、新建comboBox組件實(shí)例,并命名;
2、選擇列表框組件,打開組件檢查器的綁定標(biāo)簽;
3、在數(shù)據(jù)驅(qū)動(dòng)程序?qū)傩灾行陆ㄒ粋(gè)綁定;
4、點(diǎn)擊“Bound To”域,指向XMLConnector組件,從構(gòu)架中選擇天數(shù)的數(shù)組day:Array

接下來,我們需要配置數(shù)據(jù)柵格DataGrid組件和XML數(shù)據(jù)源。這有點(diǎn)復(fù)雜因?yàn)檎麄(gè)數(shù)據(jù)源需要改變——無論列表框中日期選擇了哪一天。如果比較XML文檔和Flash解釋的XML架構(gòu),你會(huì)發(fā)現(xiàn)它的結(jié)構(gòu)象一個(gè)嵌套的數(shù)組。在“天數(shù)數(shù)組”day的每一天包括一個(gè)“工作數(shù)組”job。既然每個(gè)東西在架構(gòu)中只提及一次,我們下一步就使用架構(gòu)來綁定day數(shù)組中的N個(gè)索引的job數(shù)組,F(xiàn)在你獨(dú)立可以完成這一步了;在XMLConnector架構(gòu)中,用DataGrid組件實(shí)例的dataProvider屬性綁定job數(shù)組節(jié)點(diǎn)。

到目前為止,我們還不能說job數(shù)組已經(jīng)綁定到實(shí)際的XML文檔里,事實(shí)上,有7個(gè)選擇——而我們只綁定了第N天的數(shù)組;但是Flash在確定N的取值時(shí),有個(gè)秘密。

1、    再次選擇XMLConnector并打開綁定標(biāo)簽;
2、    選擇從job數(shù)組到dataGrid組件實(shí)例的綁定——results.chores.day.[n].job。你也許注意到一個(gè)新的參數(shù)Index for ‘day’已經(jīng)出現(xiàn)在底端。這個(gè)參數(shù)讓我們指定day數(shù)組的索引值。在這里你可以輸入一個(gè)值,但是我們想讓它隨comboBox組件實(shí)例的選項(xiàng)而變化。本質(zhì)上,在其他的可綁定的屬性上都可以這么用,所以我們僅僅把它和comboBox組件實(shí)例的selectedIndex屬性綁定在一起,就象我們所做過的其他綁定一樣——雙擊Index for ‘day’參數(shù)的空白值區(qū),彈出綁定索引窗口,取消使用常數(shù)值選項(xiàng),選擇“組件路徑”ComboBox的“架構(gòu)位置”selectedIndex:Number選項(xiàng)。

3、測試影片好了吧。

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

上一頁 下一頁 Flash MX 2004 數(shù)據(jù)綁定 [2]

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

相關(guān)文章 更多相關(guān)鏈接
Flash dynamic mask 動(dòng)態(tài)遮罩
Macromedia Flex Builder 發(fā)布
Fireworks 2004 作遠(yuǎn)古獸皮卷軸
Fireworks 2004 作波爾卡點(diǎn)邊框
As2 Class 的 Private 屬性
作者文章
Flash MX 2004 數(shù)據(jù)綁定
Flash dynamic mask 動(dòng)態(tài)遮罩
Flash MX 2004 video
Flash ActionScript 2.0 基礎(chǔ)教程
flash 打開我的文檔等特殊文件夾
關(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)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

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

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會(huì)員,你可以注冊 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jī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