亚洲香蕉成人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ā)表
2019一级黄色毛片免费看网| a中文字幕www| 欧美1区3d| av免费播放网站| 天天做天天爱天天爽综合网| fc2ppv在线观看| 国产精品福利网站| 男人的天堂成人| 国产精品丝袜一区二区| 欧美久久久久久久久| 色综合视频一区中文字幕| 69国产精品成人在线播放| 91蝌蚪在线观看视频| 2018国产精品视频| 中文字幕国产免费| 日韩啪啪网站| 好吊色视频一区二区| 婷婷综合影院| 亚洲s码欧洲m码国产av| 午夜精品视频一区二区三区在线看| 性网站在线免费观看| 日韩亚洲一区二区| 亚洲无玛一区| 免费在线播放电影| 久久噜噜噜精品国产亚洲综合| 丝袜 亚洲 另类 欧美 重口| 欧美日韩视频在线一区二区观看视频| 伊人久久av| 亚洲免费网址| 日韩福利小视频| 欧洲精品视频在线观看| a在线免费观看| 日韩久久免费电影| 国产三级第一页| 久久久久中文字幕亚洲精品| 卡通动漫亚洲综合| 亚洲经典一区二区三区| 污污视频在线观看网站| 日韩精品视频免费在线观看| 三上悠亚激情av一区二区三区| 国内精品国产三级国产aⅴ久| 免费黄色在线播放| 日本夜爽爽一二区| 亚洲不卡中文字幕| 亚洲一区二区四区蜜桃| 亚洲三级在线观看| 日韩一级完整毛片| 麻豆av一区二区| 精品人妻在线播放| 日本成人中文字幕在线| 天天人人精品| 亚洲一级二级片| 国产黄色一区二区| 日本在线观看一区二区三区| 91久久久一线二线三线品牌| 五月天婷婷综合网| 蜜桃视频在线观看www| 国内精久久久久久久久久人| 欧美黄色一级网站| 日日干日日操| 亚洲小说区图片区都市| 黄瓜视频污在线观看| 国产精品 欧美 日韩| 日本欧美不卡| 最近中文字幕在线6| 成人www视频网站免费观看| 精品久久久久久久中文字幕| 天天插天天色| 日本在线观看中文字幕| 国产乱人伦精品一区| 欧美一级网站| a级网站在线播放| 中文字幕乱码中文字幕| rebdb初裸写真在线观看| 欧洲s码亚洲m码精品一区| 欧美日韩视频免费看| 欧美专区福利在线| 国产精品入口麻豆免费| 久久av一区二区三区漫画| 98在线视频| 欧美成人精品一区二区| 又爽又黄的午夜网站| 国模精品系列视频| 成年网站在线免费观看| 中文字幕五月天| 正在播放国产一区| 亚洲天堂男人的天堂| 日韩av在线一区| 精品福利网址导航| 日韩电影在线看| 性一交一乱一伧国产女士spa| 国产性猛交96| 中文字幕亚洲精品视频| 日本一区二区动态图| av女人的天堂| 高清不卡亚洲| 国产麻豆剧果冻传媒视频杜鹃| 鲁片一区二区三区| 免费高清在线一区| 亚洲精品久久久久中文字幕二区| 久久www视频| 高清电影在线免费观看| 蘑菇福利视频一区播放| seba5欧美综合另类| 福利一区福利二区微拍刺激| 国产亚洲精品久久777777| 黄色亚洲大片免费在线观看| 如如影视在线观看经典| 国产精品沙发午睡系列| 国产精品毛片无遮挡高清| 97香蕉久久夜色精品国产| 一区在线中文字幕| 日本www在线观看| 狠狠操一区二区三区| 九色91国产| 欧美黄网免费在线观看| 激情久久综合| 黑人性生活视频| 亚洲风情亚aⅴ在线发布| brazzers欧美最新版视频| 亚洲黄色片免费看| 国产精品精品国产一区二区| 9l视频自拍九色9l视频成人| 国产精品网站在线| 亚洲天堂手机版| 国产超碰精品| 爱高潮www亚洲精品| 亚洲欧美日韩中文字幕一区二区三区| 国产人成高清视频观看| 国产超级va在线视频| 少妇伦子伦精品无吗| 男人的天堂最新网址| 残酷重口调教一区二区| 爽爽爽在线观看| 一道精品视频一区二区三区图片| 秋霞影院一区| 免费观看在线一区二区三区| 激情久久99| 成人亚洲欧美| 91九色在线观看视频| 丰满岳妇乱一区二区三区| 成人日日夜夜| 欧美国产二区| 特级西西444www大胆免费看| 大白屁股一区二区视频| 亚洲日本一区二区三区在线观看| 欧美大肥婆大肥bbbbb| 欧洲免费在线视频| 91社区视频| 亚洲国产小视频在线观看| 精品在线99| 久久影院一区二区三区| 精品一区二区中文字幕| 日韩视频永久免费观看| 在线播放av网站| 中文字幕精品在线视频| 亚洲成人亚洲激情| 欧美中文一区二区三区| 人妖一区二区三区| 国产亚洲精品拍拍拍拍拍| 国产成人精品av久久| 亚洲国产中文字幕在线视频综合| 九九热线视频只有这里最精品| japonensisjava老师可播放| 亚洲1024| 美女久久久久久久久久| 精品视频在线一区二区| 在线观看免费av片| 国产精品高潮久久| 国产精品美女久久久久人| 亚洲视频欧美在线| 久久sese| 精品伊人久久大线蕉色首页| 免费观看成人鲁鲁鲁鲁鲁视频| 无码人妻精品一区二区三区不卡| 四虎最新网站| 国产主播精品在线| 99热都是精品| 国产极品一区二区三区| 中文字幕无码乱码人妻日韩精品| 国产欧美日韩伦理| 国产富婆一级全黄大片| 99精品国自产在线| 1区2区在线观看| 国内精品久久久久久野外| 91系列在线观看| 国产男女在线观看| 久久精品国语| 国产第100页| 国产主播第一页| 宅男噜噜噜66国产精品免费| 成人噜噜噜噜| 欧美性xxxx极品高清hd直播| 91视频福利| 国产91大片| 第三区美女视频在线| kk眼镜猥琐国模调教系列一区二区| 精品一区二区日本| 久久精品国产99国产精品澳门| 日韩在线观看视频一区二区| 中文字幕日韩一级| 日本不卡在线观看| eeuss影院18直达| 久久精品视频免费播放| 成人国产一区二区三区| 妖精视频一区二区三区免费观看| 在线视频一二区| www..com.cn蕾丝视频在线观看免费版| 成人三级在线视频| 久久久五月天| av一区二区三区| 国产精品视频yy9099| 国产成人精品毛片| 欧美丰满少妇xxxxx高潮对白| 亚洲丝袜精品丝袜在线| 国产精品嫩草影院av蜜臀| 亚洲国产精品成人| 久久久九九九热| 五月婷婷激情综合| 人妻偷人精品一区二区三区| 要久久爱电视剧全集完整观看| 亚洲成色最大综合在线| 亚洲免费网站观看视频| 69国产精品| 中文av字幕一区| 无码国产伦一区二区三区视频| 99精品女人在线观看免费视频| 亚洲伊人成综合成人网| 亚洲精品综合一区二区三区| 色噜噜夜夜夜综合网| 超碰色偷偷男人的天堂| 日日噜噜噜噜人人爽亚洲精品| 日韩一级片免费看| 四虎地址8848jia| 五月激情综合| 久久久久久**毛片大全| 日本理论片2828理论片| 户外极限露出调教在线视频| 最新版天堂资源在线| 国产精品久久久久一区二区三区共| 国产成人综合自拍| 日韩精品极品在线观看播放免费视频| 四虎影视在线播放| 久久久久国产一区| 精品国内自产拍在线视频| 日韩欧美中文字幕视频| 欧美日韩性视频| 性生活一级大片| 国产精品污www在线观看| 影音先锋在线资源中文字幕| av无码一区二区三区| 国产女18毛片多18精品| 天天综合精品| 懂色av中文字幕| 你懂的在线观看视频网站| 日本高清www免费视频| 免费激情视频在线观看| 日韩美一区二区三区| 欧美日一区二区三区| 91精品婷婷国产综合久久性色| a∨色狠狠一区二区三区| 男人天堂亚洲二区| 制服丝袜在线第一页| 日本色图欧美色图| 亚洲成av人综合在线观看| 精品国产免费人成网站| 国产精品视频一区在线观看| 日韩一级精品视频在线观看| 黄色在线免费| 日本麻豆一区二区三区视频| 美女激情福利视频在线观看| 这里只有精品6| 亚洲色图第一页| 4444亚洲人成无码网在线观看| 2019中文字幕视频| 性做爰过程免费播放| 午夜91在线| 国产精品嫩草久久久久| 国产成人精品久久二区二区| 国产九色精品成人porny| 六月丁香婷婷激情| 欧美bbbxxxxx| 亚洲综合色站| 欧美电影免费观看网站| 免费成人深夜夜行网站| 午夜一区二区三区四区| 久久综合五月| 99久热re在线精彩视频| 欧美成人精品福利网站| 亚洲天堂第一区| 国产成人精品在线播放| 欧美色图另类小说| 进去里视频在线观看| 欧美精品在线免费观看| 狂野欧美激情性xxxx| 日本三级电影网站| 日本.亚洲电影| 国产一级淫片免费| 在线成人av| 一区二区三区四区国产| 午夜成人鲁丝片午夜精品| 欧美在线高清视频| 中文字幕在线一区| 最新av番号| 一区二区三区在线免费看| 亚洲天堂影院在线观看| 91成人伦理在线电影| 欧美丰满老妇| 欧美一级大片在线视频| 91久久嫩草影院一区二区| 香蕉亚洲视频| 欧美亚洲综合网| 国产欧美日本一区二区三区| 日韩亚洲国产免费| 中文字幕乱码日本亚洲一区二区| 国产精品家庭影院| 国产精彩视频在线| 羞羞视频在线观看免费| 婷婷五月精品中文字幕| 欧美日韩国产精选| 一区二区三区免费在线视频| 欧美在线免费视频| 蜜桃精品成人影片| 在线播放国产精品二区一二区四区| 国产a√精品区二区三区四区| 亚洲午夜18毛片在线看| 手机在线一区二区三区| 中文字幕一区二区三区四区五区人|