亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 開(kāi)發(fā) > Flex > 正文

Flex Bindable 的用法

2024-09-12 17:51:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
我就按自己的理解隨便解釋一下:首先要明白元數(shù)據(jù)不是語(yǔ)法的一部分,而是專(zhuān)門(mén)給編譯器用的,說(shuō)白了是告訴編譯器做某些事情,學(xué)過(guò)java之類(lèi)的應(yīng)該知道。那Bindable來(lái)講,它的作用是告訴 flex編譯器,給某些某些東西建立綁定關(guān)系,flex編譯器會(huì)在編譯過(guò)程中給AS(flex編譯器就是把mxml編譯成as,再編譯到swf,也可能直接編譯倒swf,我這里假設(shè)有as這么個(gè)環(huán)節(jié))加一點(diǎn)事件發(fā)生和處理之類(lèi)的代碼,由此綁定的關(guān)系便建立了,如果我們用純粹as3代碼來(lái)寫(xiě)也是可以實(shí)現(xiàn)的,就是太太太麻煩。
什么是綁定:
舉個(gè)例子:給下面的public變量加上[Bindable]
[Bindable]
public var name:String = "";
作為一個(gè)public變量,肯定既可以被賦值,也能賦值給別的變量。綁定的作用就是,當(dāng)name改變的時(shí)候(被賦值了),可能通知其它被name影響(賦值給它們)的變量發(fā)生改變。這里的“可能”就需要編譯器來(lái)判斷,這就是為什么元數(shù)據(jù)是給編譯器用的原因了。在mxml里用{}的語(yǔ)法的地方就是綁定的對(duì)象,比如label={xxx.name},當(dāng)name變化,label也跟著變化。這樣,我們只是很簡(jiǎn)單的改變了name的值,由于有綁定,界面上的 label也跟著自動(dòng)變化了,爽吧。
能用在哪里
三個(gè)地方:類(lèi), 變量, getter/setter。是不是public沒(méi)有關(guān)系,private的就只能給自家用唄。用在Class上就是簡(jiǎn)單的給所有的public屬性(包括變量,getter/setter,普通方法)加上 [Bindable],可是一般的方法不能用[Bindable]呀,于是一般就能看到flex給了個(gè)warning,直接無(wú)視:)。變量嘛就是上面講的,很簡(jiǎn)單略掉。
用在只讀,只寫(xiě)屬性(getter/setter)上面
終于講到關(guān)鍵地方了,因?yàn)間etter和setter很像方法,用起來(lái)會(huì)有點(diǎn)不同??纯催@個(gè)例子:
復(fù)制代碼 代碼如下:

[Bindable]
private var content:Array = new Array();
[Bindable]
public function set _content(ct:String):void
{
content = ct.split(SEP);
}
[Bindable]
public function get _wholeText():String
{
if(content.length == 0)
{
return "";
}
else
{
var _w:String = "";
for(var i:int=0 ; i<content.length ; i++)
{
_w += content[i] + "/r/n";
}
return _w;
}
}

原來(lái)的設(shè)想是content綁定_wholeText,可它是不工作的。為什么?_wholeText太復(fù)雜了,被編譯器排除在“可能”之外,編譯器認(rèn)為沒(méi)有綁定關(guān)系,如果只是簡(jiǎn)單的return content,倒是可以的。我這里搜到了一些比較權(quán)威的解釋。來(lái)自http://www.rubenswieringa.com/blog/binding-read-only-accessors-in-flex找到Ely Greenfield講的。
Now keep in mind that there's no way for the compiler to actually tell if the value of a property get function would be different if called, short of doing an extensive code flow analysis of the get function, identifying all the inputs that might be affecting the value of the get function (i.e., member fields, statics, globals that are used in the get function and in any methods, global functions, closures, etc) it might call, and setting up watchers on every one of those to trigger the binding when any of them change. That's prohibitively difficult, and expensive to do. So the compiler doesn't try.
Instead when you put [Bindable] on a get/set property, the compiler makes it bindable with a little creative rewriting that allows the framework to watch the get function, and dispatch a change event when the get function is triggered. This means that automatic bindable properties don't work when the get function is computed from multiple values, or when you change its value by setting a backing field, rather than using the set function.
It _also_ means that if you have no set function, we can pretty much guarantee that there's no way automatically bindable get properties will be triggered. a read only propeerty is, to the compiler, completely opaque…at the moment, it has no idea where that value is coming from, and hence will never be able to ‘a(chǎn)utomatically' trigger the binding.
說(shuō)白了就是為了降低復(fù)雜度和提高效率,復(fù)雜情況的getter會(huì)被忽略。如何解決?可以手動(dòng)建立綁定,即[Bindable("eventName")]。把代碼改成這樣:
復(fù)制代碼 代碼如下:

[Bindable]
private var content:Array = new Array();
[Bindable]
public function set _content(ct:String):void
{
content = ct.split(SEP);
this.dispatchEvent(new Event("_contectChanged"));
}
[Bindable("_contectChanged")]
public function get _wholeText():String
{
if(content.length == 0)
{
return "";
}
else
{
var _w:String = "";
for(var i:int=0 ; i<content.length ; i++)
{
_w += content[i] + "/r/n";
}
return _w;
}
}

這樣就避免了編譯器去自動(dòng)識(shí)別。自己加上綁定關(guān)系,當(dāng)_content被賦值,發(fā)出_contentChanged事件,通知所有被綁定的getter方法執(zhí)行一遍。這也說(shuō)明了,綁定不過(guò)是事件游戲而已,flex為用戶(hù)隱藏了很多底層算法。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产精品一国产精品最新章节| 日本天堂免费a| 欧美肥老妇视频| 国产亚洲情侣一区二区无| 亚洲の无码国产の无码步美| 91精品国产色综合久久不卡蜜臀| 亚洲最新永久观看在线| 在线观看欧美www| 91成人性视频| 日本一区二区免费高清| 性久久久久久久久久久久| 最近2018年在线中文字幕高清| 黄色三级高清在线播放| 九色蝌蚪性视频| 污视频在线看操| 免费在线播放第一区高清av| 一本大道综合伊人精品热热| 超级碰碰视频| 亚洲成人网在线观看| 福利网站av| 久草在线免费资源| 国产ts丝袜人妖系列视频| 国产视频aaa| 日本高清久久久| 校园春色亚洲| 久久精品国产露脸对白| 黄色欧美在线| 国产精品免费观看视频| 在线免费看h| av在线免费网址| 成人无号精品一区二区三区| 免费av网站大全久久| 亚洲一二三区在线观看| 亚洲电影在线| 精品人妻一区二区三区麻豆91| 精品久久国产| 激情成人开心网| 久久天天狠狠| 国产欧美日产一区| 国精品**一区二区三区在线蜜桃| 朝桐光一区二区| 黄色正能量网站| 国产成人精品a视频| 国产一区二区视频在线免费观看| 亚洲大黄网站| 国产欧美精品一区二区三区| 亚洲欧美制服中文字幕| 国产精品国产国产aⅴ| 亚洲裸色大胆大尺寸艺术写真| 91精品国产入口在线| 夫妻免费无码v看片| 日本在线一二三| 男人和女人啪啪网站| 在线永久看片免费的视频| 欧美丝袜一区二区| 欧美一区二区视频观看视频| 国产三级在线观看完整版| 天堂一区二区在线免费观看| 2017亚洲男人天堂| www.激情成人| 先锋av在线资源| 日韩免费在线电影| 国产精品毛片a∨一区二区三区| 一级特黄录像免费播放全99| 欧美日韩高清一区二区不卡| 国产精品chinese在线观看| 免费在线观看成人av| 99久久久无码国产精品衣服| 国产精品一线二线三线| 中文字幕av片| 久久男人av资源站| 欧美孕妇与黑人巨交| 日韩av毛片| 97成人超碰免| 欧美激情亚洲另类| www.久久伊人| 日韩精品无码一区二区三区免费| 亚洲免费在线播放| 国产一级黄色录像| 婷婷久久青草热一区二区| 欧美在线一区视频| 污视频在线看网站| 草草草视频在线观看| 免费高清视频日韩| 精品国产精品久久一区免费式| 亚洲成人免费在线| 污视频网站免费| 日韩成人在线电影网| 国产又粗又猛又爽又黄91| 激情图片在线观看高清国产| 香蕉影视欧美成人| 久久免费视频一区| 久久精品国语| 日韩一区二区三区四区在线| 精品深夜av无码一区二区老年| 男男视频亚洲欧美| y4480在线8影院| 亚洲精品国产成人| 在线视频一二区| 国产午夜大地久久| 在线亚洲一区| julia一区二区三区中文字幕| 午夜精品一区二区在线观看| 久久99精品久久久久久青青日本| 日韩精品在线一区二区三区| 午夜激情在线观看视频| 免费在线观看一区二区三区| 欧美日韩综合| 综合国产在线观看| 另类综合图区| 亚洲欧美激情插| 一区三区在线欧| 亚洲大片精品永久免费| 91在线视频官网| 日本精品免费在线观看| 久久亚洲国产精品尤物| 国产日产欧美一区二区视频| 川上优av中文字幕一区二区| 激情av一区二区| 久久网站免费观看| 精品写真视频在线观看| 日韩超碰人人爽人人做人人添| 天天综合网久久| 最近2018年在线中文字幕高清| 成人在线看视频| 成人做爰视频www网站小优视频| 精品一区免费观看| 无码人妻一区二区三区免费| 首页欧美精品中文字幕| 久久免费福利视频| 在线视频第一页| 日韩精品高清在线| 男女性高潮免费网站| 久久久女人电视剧免费播放下载| 人妻一区二区视频| 久久免费精品国产久精品久久久久| √天堂8在线网| 日韩理论片av| se在线电影| 国产美女在线精品免费观看| 国产又黄又猛的视频| 五月激情在线| 国产综合在线观看| 精品一区二区三区在线观看| 91久久国产精品91久久性色| 牛夜精品久久久久久久| 成人在线一区| 黑人精品无码一区二区三区AV| 蜜桃av在线免费观看| 国产精品手机在线| 欧美一区少妇| 97久久精品一区二区三区的观看方式| 美女的诞生在线观看高清免费完整版中文| 7777久久香蕉成人影院| 九九热精品视频| 日韩中文字幕91| 亚洲色图13p| 国产三级精品三级| 欧美aaaaaa| 少妇高潮露脸国语对白| 久久久高清一区二区三区| 被陌生人带去卫生间啪到腿软| 韩国成人动漫在线观看| 懂色av影视一区二区三区| 久久在线观看视频| 在线观看日产精品| 欧美日韩天天操| 99视频在线精品国自产拍免费观看| 在线观看成人黄色| 久久久久高清精品| 免费大片黄在线| 亚洲一卡二卡| 9999在线视频| 精品处破学生在线二十三| 欧美成人免费在线观看视频| 久久蜜臀精品av| 国产精品久久久一区| 国产福利一区二区精品秒拍| 国产精品色在线观看| 91视频一区二区三区| 欧美一卡二卡| 亚洲色图偷拍视频| 成人综合久久| 亚洲欧美国产日韩综合| 天堂在线观看免费视频| 免费成人av电影| 婷婷综合视频| 99久久99久久精品免费| 国产成人a人亚洲精品无码| 亚洲男人天天操| 欧美日韩亚洲国内综合网| 三上悠亚激情av一区二区三区| 91香蕉视频污版| 日韩高清不卡av| 国产精品99久久久久久宅男| 久久视频精品在线观看| 久久日.com| 9色porny| 欧美性生活久久| 亚洲视频一区二区三区四区| 九九视频九九热| 久久精品免费网站| 一区二区三区久久久| 91免费精品国偷自产在线| 国产国语性生话播放| 日韩激情在线| 夜夜操com| 亚洲国产一区二区三区网站| 亚洲免费三区一区二区| 欧美老女人在线| 最新亚洲一区| 国产精品二区三区四区| 日韩av黄色在线观看| 国产精品久久免费观看| 尤物九九久久国产精品的特点| 久久久精品毛片| 国产一区二区三区免费看| 国产youjizz在线| 亚洲色图av在线| 粉嫩一区二区三区国产精品| 免费三级在线观看| 亚洲自拍都市欧美小说| 先锋亚洲精品| 神马久久久久久久久| 国产伦精品一区二区三区88av| 亚洲精品日韩激情在线电影| 亚洲电影免费观看| 二区在线观看| 欧美日韩国产一区中文午夜| 国产精品一二三区| 免费网站你懂的| 成人欧美在线观看| 日本中文字幕一区| 欧美日韩国产天堂| 亚洲羞羞网站| 91免费精品国偷自产在线| 国产情人综合久久777777| 18禁男女爽爽爽午夜网站免费| 三级福利片在线观看| 丰满少妇被猛烈进入高清播放| 日韩精品一区二区三区免费观看| 色老头一区二区| 蜜桃视频在线观看免费视频网站www| 韩国av免费在线观看| 亚洲一区二区视频在线| av日韩电影| 变态另类丨国产精品| 国产亚洲精品激情久久| 欧美在线你懂得| 亚洲日本va中文字幕| av片在线观看网站| 亚洲一二三四区不卡| 91性高潮久久久久久久| 高跟丝袜一区二区三区| 亚洲欧美一区二区激情| 国产91高潮流白浆在线麻豆| 伊人影院综合网| 久久精品九色| 亚洲精品欧美| 国产精品久久| 亚洲精品久久久久国产| 成人国产激情| 国内精品久久99人妻无码| 99久re热视频精品98| 欧美性猛交xxxxx水多| 午夜久久影院| 六月激情综合网| 99v久久综合狠狠综合久久| 午夜激情在线观看| 一区二区三欧美| 久久久久国产视频| 亚洲xxxx做受欧美| 亚洲日本久久久午夜精品| 亚洲欧美自偷自拍另类| 亚洲成色最大综合在线| 深田咏美中文字幕| 国产精品成人v| 国产午夜精品理论片a级探花| 国产精品永久免费| 国产69精品久久| 2021最新国产精品一区| 欧美高清视频在线观看mv| 不卡一二三区| 国产精品第9页| 国产xxxxx| 蜜桃av.网站在线观看| 久久久综合精品| 日韩av不卡电影| 精品久久国产97色综合| 成人精品一区二区三区免费| 91久久久久久久一区二区| 51xtv成人影院| 老熟妻内射精品一区| av综合在线播放| 亚洲第一区在线观看| 亚洲伦理网站| 尤物免费看在线视频| 成人国产在线视频| 樱桃成人精品视频在线播放| 国产麻豆视频精品| 北条麻妃在线视频观看| 99精品在线免费视频| 色88888久久久久久影院野外| 亚洲人123区| 成人免费电影视频| 丁香婷婷综合激情五月色| 日韩av免费在线播放| 青青草成人免费| 欧洲视频在线免费观看| 乱中年女人伦av一区二区| 亚洲影视资源| 欧洲在线免费视频| 日本妇乱大交xxxxx| 色爱综合区网| av影片在线播放| 日本一级特级毛片视频| 欧美午夜三级| 日本成人中文字幕在线| www.欧美日本韩国| 中文字幕免费视频观看| 少妇精品久久久久久久久久| 精品av导航| 精品人妻一区二区乱码| 亚洲一区美女视频在线观看免费| 91精品国产日韩91久久久久久| 啊啊啊啊啊啊啊视频在线播放| www.-级毛片线天内射视视| 亚洲国产精品久久久久久|