色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

動態(tài)模板語義分析-動態(tài)綁定XML

汽車電子技術(shù) ? 來源:程序猿搬磚 ? 作者: 壞人 ? 2023-03-03 10:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

DynamicDSL將遵循以下的交互展示邏輯: 描述文件(XML,Widget) --->(綁定數(shù)據(jù))--->渲染模板--->渲染--->事件驅(qū)動--->數(shù)據(jù)改變 這樣循環(huán)下來的,最終我們看到的就是App上的界面與交互效果了。

這看上去和RN,flutter有點(diǎn)像,只是我們這個是特定場景的使用。

實(shí)現(xiàn)了AST節(jié)點(diǎn),已經(jīng)有了動態(tài)計算數(shù)據(jù)的能力,接下來我們將實(shí)現(xiàn)動態(tài)XML模板的綁定,為渲染前生成布局描述模板。

<View>
    <View text="年齡: {{ 33.22 * 2}}" color="{{ item[age] >= 20 ? '#FFFFFF' : '#DDDDDD' }}" />
class="hljs-name"View>

這個模板比較簡單,它有一個根節(jié)點(diǎn),根節(jié)點(diǎn)有一個子節(jié)點(diǎn)包含兩個屬性,我們用"{{ }}"來描述需要計算的表達(dá)式,如果沒有兩個大括號則認(rèn)為是原始字符串。

「這里我們規(guī)定,布局模板必須在一個根節(jié)點(diǎn)下面!」

XML原始節(jié)點(diǎn)展示如下:

圖片text節(jié)點(diǎn)可以直接計算出結(jié)果, color節(jié)點(diǎn)通過獲取環(huán)境變量中名稱為item的數(shù)據(jù),再進(jìn)一步獲取其中名稱為age的數(shù)據(jù)與20進(jìn)行比較,再得到具體的值。

R"({"item":{"age": 30}})"

動態(tài)綁定之后結(jié)果如下:

圖片

到此,可以認(rèn)為這個XML是我們基礎(chǔ)布局模板,可以拿給Flex引擎計算了。

在組件布局的時候還時常需要對組件節(jié)點(diǎn)進(jìn)行重復(fù)或者顯示與隱藏等操作,因此: 我們規(guī)定

for="{{for xx item xxs}}" 用于實(shí)現(xiàn)重復(fù)組件

if="{{ expr }}" 用于實(shí)現(xiàn)節(jié)點(diǎn)是否顯示

現(xiàn)在我們將XML的描述修改成下面這樣:

<View>
    <View text="年齡: {{ 33.22 * 2}}" info="{{ item[name] }} : {{item[age]}}" color="{{ item[age] >= 20 ? '#FFFFFF' : '#DDDDDD' }}" for="{{ for item in items }}"/>
class="hljs-name"View>

XML原始節(jié)點(diǎn)展示如下:

圖片

首先我們需要遍歷節(jié)點(diǎn)的屬性,查找到節(jié)點(diǎn)中for字段的值是否為一個有效的循環(huán)表達(dá)式,然后對該循環(huán)表達(dá)式進(jìn)行計算展開,結(jié)果如下:

圖片

R"({"item":{"age": 30},"items":[{"name": "小強(qiáng)", "age": 28},{"name": "小明", "age": 23},{"name": "小紅", "age": 18}]})"

**「這里需要特別注意的是:For會產(chǎn)生一個新的變量環(huán)境,for語句中定義了一個新的變量,當(dāng)我們在展開時需要將新的變量(item)注入到變量環(huán)境中,item將覆蓋上一級環(huán)境變量中的item的值。

這與棧幀調(diào)用時的本地變量覆蓋上一級范圍中的變量是一樣的道理。

」** 展開之后,item是items中的每一個元素而不是根節(jié)點(diǎn)上的item了。

此時再對每個節(jié)點(diǎn)進(jìn)行消解運(yùn)算

注入的環(huán)境變量如下:

圖片

if語句相對簡單一點(diǎn),它不會產(chǎn)生新的變量,只需要對表達(dá)式求值,獲取表達(dá)式的結(jié)果true則保留,false則刪除節(jié)點(diǎn)不展示。

測試一下,對一個相對復(fù)雜的模板進(jìn)行動態(tài)綁定:

<View>
    <View text="年齡: {{ 33.22 * 2}}" color="{{ item[age] >= 20 ? '#FFFFFF' : '#DDDDDD' }}" for="{{ for item in items }}">
    class="hljs-name"View>
    <View>
        <View for="{{ for item in items }}">
            

展示結(jié)果如下,「這里需要注意的是當(dāng)一個父節(jié)點(diǎn)在循環(huán)的時候,它的子節(jié)點(diǎn)也同樣會得到for生成的新變量,在展開子節(jié)點(diǎn)計算其屬性時,也能獲取到新的變量從而得到想要的結(jié)果。」

圖片

到這里,動態(tài)綁定就差不多了,接下來就是將綁定后的模板交給Flex引擎,計算而已了。

如果你覺得這個文章對你有用,可以分享給更多的朋友。

謝謝!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7259

    瀏覽量

    92018
  • XML
    XML
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    33773
  • 渲染
    +關(guān)注

    關(guān)注

    0

    文章

    76

    瀏覽量

    11185
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    基本共射放大電路的組成、靜態(tài)分析動態(tài)分析

       分析基本共射放大電路的需要從靜態(tài)和動態(tài)分析,靜態(tài)指的是“直流通路在直流電源作用下直流電流流經(jīng)的通路”,用于研究靜態(tài)工作點(diǎn),動態(tài)指的是“交流通路是輸入信號作用下交流信號流經(jīng)的通路”
    發(fā)表于 01-12 11:38 ?1.6w次閱讀
    基本共射放大電路的組成、靜態(tài)<b class='flag-5'>分析</b>及<b class='flag-5'>動態(tài)</b><b class='flag-5'>分析</b>

    請問Labview如何讓多個按鈕控件動態(tài)和enter鍵綁定

    labview是否有動態(tài)綁定功能或其他解決辦法,即完成:在選項(xiàng)卡初測界面時,掃條碼后能自動測試,在選項(xiàng)卡終測界面時,掃條碼也能自動進(jìn)入測試狀態(tài)。
    發(fā)表于 01-21 21:03

    關(guān)于使用JQuery或JS動態(tài)添加的元素?zé)o法綁定事件的問題

    解決使用JQuery或JS動態(tài)添加的元素?zé)o法綁定事件的問題
    發(fā)表于 04-30 11:41

    動態(tài)ppt課件模板

    動態(tài)的ppt課件模板,帶動畫的細(xì)紋設(shè)計課件模版, 動態(tài)魔方課件模版
    發(fā)表于 12-03 19:10 ?0次下載
    <b class='flag-5'>動態(tài)</b>ppt課件<b class='flag-5'>模板</b>

    動態(tài)限載系統(tǒng)的設(shè)計和分析

    動態(tài)限載系統(tǒng)的設(shè)計和分析 Design and Analysis of Dynamic Load Limit System
    發(fā)表于 03-16 15:01 ?8次下載

    某裝備結(jié)構(gòu)動態(tài)特性分析

    利用試驗(yàn)?zāi)B(tài)分析法獲得了某機(jī)槍結(jié)構(gòu)的模態(tài)參數(shù),分析了機(jī)槍的動態(tài)特性,并通過基于模態(tài)試驗(yàn)的靈敏度分析方法,獲得了影響該機(jī)槍動態(tài)特性的敏感部位,
    發(fā)表于 10-10 14:29 ?13次下載

    多級放大電路的動態(tài)分析

    多級放大電路的動態(tài)分析 1 電壓放大倍數(shù)壓放大倍數(shù) 2
    發(fā)表于 05-23 16:56 ?6825次閱讀
    多級放大電路的<b class='flag-5'>動態(tài)</b><b class='flag-5'>分析</b>

    Java解析XML的一種數(shù)據(jù)綁定技術(shù)

    文中為了進(jìn)一步用Java語言有效地解析XML文件,提出了一套XML文件與Java程序的綁定技術(shù),通過該技術(shù)方法能夠使開發(fā)人員方便地將XML文件在不同平臺之間進(jìn)行交互,達(dá)到跨平臺的目的,
    發(fā)表于 08-29 14:44 ?0次下載

    一種新的基于素數(shù)的XML動態(tài)編碼方法_田帥

    一種新的基于素數(shù)的XML動態(tài)編碼方法_田帥
    發(fā)表于 03-19 11:45 ?0次下載

    一種可在動態(tài)環(huán)境下構(gòu)建語義地圖的算法

    Localization And Mapping,SLAM)算法已經(jīng)可以達(dá)到較高的定位和制圖精度,但是在動態(tài)環(huán)境下如何通過剔除動態(tài)物體來獲得較髙的定位精度,以及理解周圍場景中存在的物體及其位置信息等問題沒有得到很好的解決。在此,文中提出了一種可在
    發(fā)表于 05-07 14:56 ?4次下載

    雙極性晶體管的動態(tài)分析

    既然有靜態(tài)分析,當(dāng)然也會伴隨著動態(tài)分析。靜態(tài)分析是去掉了放大電路中的交流成分,那么,動態(tài)自然是去掉了放大電路中的直流成分。
    的頭像 發(fā)表于 08-14 16:34 ?2056次閱讀
    雙極性晶體管的<b class='flag-5'>動態(tài)</b><b class='flag-5'>分析</b>

    共射極放大電路的動態(tài)參數(shù) 動態(tài)分析步驟

      共射極放大電路的動態(tài)分析是指在考慮信號輸入時,分析電路的放大性能和頻率特性。在動態(tài)分析中,需要考慮晶體管的非線性特性以及輸入和輸出信號的
    發(fā)表于 02-27 11:12 ?5676次閱讀

    動態(tài)模板-流程設(shè)計

    動態(tài)綁定XML的邏輯已經(jīng)完成了,接下來就是拆分整合各模塊,實(shí)現(xiàn)渲染流程的每一個環(huán)節(jié)。
    的頭像 發(fā)表于 03-03 10:05 ?838次閱讀
    <b class='flag-5'>動態(tài)</b><b class='flag-5'>模板</b>-流程設(shè)計

    動態(tài)模板語義分析-實(shí)現(xiàn)AST節(jié)點(diǎn)

    我們已經(jīng)實(shí)現(xiàn)了數(shù)據(jù)類型的定義,在此基礎(chǔ)上我們就可以來實(shí)現(xiàn)我們的數(shù)據(jù)節(jié)點(diǎn)了。 在實(shí)現(xiàn)某個具體節(jié)點(diǎn)(比如一無表達(dá)式節(jié)點(diǎn))之前,我們需要抽象出一個基類SemaASTNode
    的頭像 發(fā)表于 03-03 10:09 ?931次閱讀

    一個動態(tài)環(huán)境下的實(shí)時語義RGB-D SLAM系統(tǒng)

    大多數(shù)現(xiàn)有的視覺SLAM方法嚴(yán)重依賴于靜態(tài)世界假設(shè),在動態(tài)環(huán)境中很容易失效。本文提出了一個動態(tài)環(huán)境下的實(shí)時語義RGB-D SLAM系統(tǒng),該系統(tǒng)能夠檢測已知和未知的運(yùn)動物體。為了減少計算成本,其只對
    的頭像 發(fā)表于 08-25 16:49 ?1096次閱讀
    一個<b class='flag-5'>動態(tài)</b>環(huán)境下的實(shí)時<b class='flag-5'>語義</b>RGB-D SLAM系統(tǒng)
    主站蜘蛛池模板: 97精品国产高清在线看入口 | 夫妻日本换H视频 | 日本一本免费线观看视频 | 久久精品在现线观看免费15 | 学生妹被爆插到高潮无遮挡 | ⅹxx日本护土| 怪物高h粗暴无尽 | 黄色三级在线 | 好男人的视频在线观看 | 狠狠久久免费视频在线 | 最近中文字幕MV高清在线视频 | 久久国产精品久久国产精品 | 囯产精品一品二区三区 | 亲胸揉胸膜下刺激视频网站APP | 亚洲精品一本之道高清乱码 | 羞羞答答的免费视频在线观看 | 一本之道加勒比在线观看 | 99久久爱re热6在线播放 | 国产原创中文视频 | 樱桃bt在线www | 啊…嗯啊好深男男高h文 | 伊人色综合久久天天 | 91天仙tv嫩模福利 | 亚洲伊人久久网 | 一边亲着一面膜下奶韩剧免费 | 在野外被男人躁了一夜动图 | 国产又粗又猛又爽又黄的免费视频 | 国产精品亚欧美一区二区三区 | 久久精品AV无码亚洲色欲 | 性欧美videosex18嫩 | 妈妈的职业3完整版在线播放 | 琪琪的色原网站 | 伦理 电影在线观看 | 秋霞电影网午夜一级鲁丝片 | 91久久偷偷做嫩草影院免费看 | 亚洲嫩草AV永久无码精品无码 | 娇妻归来在线观看免费完整版电影 | 99热热在线精品久久 | 久久才是精品亚洲国产 | 精品一区二区三区AV天堂 | 最近韩国HD免费观看国语 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品