ngui.md

2018-11-22 18:03 更新

ngui

Class: GUIApplication

快捷方式 --> GUIApplication

Class: ViewController

快捷方式 --> ViewController

nextFrame(cb)

渲染下一幀畫面后執(zhí)行,快捷方式 --> nextFrame(cb)

New(vx[,parent[,...args]])

New(vx[,...args])

通過vx描述數(shù)據(jù)創(chuàng)建視圖或視圖控制器,快捷方式 --> New()

CSS(sheets)

定義樣式表,快捷方式 --> CSS()

isViewXml(vx[,type])

測(cè)試參數(shù)vx是否為視圖描述數(shù)據(jù)并且為type類型

如果不傳入type不檢測(cè)類型

Get: app

獲取當(dāng)前GUIApplication實(shí)例

Get: root

獲取當(dāng)前Root實(shí)例

Get: rootCtr

獲取當(dāng)前根ViewController實(shí)例

Get: displayPort

獲取當(dāng)前DisplayPort實(shí)例

Get: atomPixel

屏幕原子像素尺寸,快捷方式 --> atomPixel

Class: View

gui核心部件,用它來描述屏幕上所有可見的元素,它是所有視圖的基礎(chǔ)類型

它也是事件的響應(yīng)者,這些事件由硬件以及操作系統(tǒng)觸發(fā)

包括Touch Mouse Keyboard

View.onBack

View.onClick

View.onTouchstart

View.onTouchmove

View.onTouchend

View.onTouchcancel

View.onKeydown

View.onKeypress

View.onKeyup

View.onKeyenter

View.onFocus

View.onBlur

View.onHighlighted

View.onRemoveView

View.onActionKeyframe

View.onActionLoop

View.constructor()

構(gòu)造函數(shù)調(diào)用前必需先創(chuàng)建GUIApplication否則拋出異常

Example:

import { View, Div, ngui } from 'ngui'


var v = new View();
v.x = 100;
v.y = 100;
ngui.root.append(v);


// jsx語(yǔ)法只能存在于.jsx文件中
var v2 = ngui.New(<Div width=100 height=100 backgroundColor="#f00" />, v);
v2.onClick.on(function(ev) {
    console.log('div click');
})

View.firstButton()

查詢內(nèi)部的第一個(gè)Button

hasChild(view)

測(cè)試view視圖是否為當(dāng)前視圖的后代視圖

View.prepend(child)

前置子視圖

View.append(child)

追加子視圖

View.appendText(text)

追擊文本字符串到結(jié)尾,不同的視圖追加到結(jié)尾的最終結(jié)果不同

如: View會(huì)追加成Label, Div會(huì)追加成Text, 而Hybrid則會(huì)追加成TextNode

但追加到結(jié)尾的都為葉子視圖

View.appendTo(parent)

追加到父視圖結(jié)尾

  • @arg parent {View}

View.before(prev)

插入到前面

View.after(next)

插入到后面

View.moveToBefore();

移動(dòng)到上一個(gè)兄弟視圖前面

View.moveToAfter();

移動(dòng)到下一個(gè)兄弟視圖后面

View.moveToFirst();

移動(dòng)到第一個(gè)

View.moveToLast();

移動(dòng)到最后一個(gè)

View.remove()

從父視圖刪除

View.removeAllChild()

刪除所有子視圖

View.focus()

獲取焦點(diǎn)成功返回true

View.blur()

辭去焦點(diǎn)成功返回true

View.layoutOffset()

獲取當(dāng)前視圖與父視圖之間的偏移量,不包括xy

只有Layout才有此值其它非布局視圖都為vec2(0,0)

View.layoutOffsetFrom([upper])

獲取當(dāng)前視圖與upper視圖之間的布局偏移量,不包括xy值,upper必需為父級(jí)視圖

如果不傳入upper默認(rèn)為parent

  • @arg [upper=parent] {View}
  • @ret {Vec2}

View.children(index)

通過索引獲取子視圖

View.getAction()

獲取當(dāng)前視圖動(dòng)作

View.setAction(action)

設(shè)置動(dòng)作

Get: View.action

獲取動(dòng)作,與getAction()功能相同

Set: View.action

設(shè)置動(dòng)作,可選的值為Action或可用于創(chuàng)建Actionjson描述Object

原型為: view.setAction(action.create(json))

View.transition(style[,delay[,cb]])

View.transition(style[,cb])

創(chuàng)建過度動(dòng)畫動(dòng)作并立即開始播放并返回KeyframeAction

原型為: action.transition(view,style,delay,cb)

播放結(jié)束回調(diào)

Callback: cb()

View.show()

顯示視圖,默認(rèn)為設(shè)置view.visible = true 當(dāng)然你可以重寫該方法

View.hide()

隱藏視圖 默認(rèn)為設(shè)置view.visible = false

View.screenRect()

獲取視圖實(shí)際在屏幕中最小左上角與最大右下角所形成的矩形,注意Trap in Layout

View.finalMatrix()

基礎(chǔ)矩陣與父視圖最終矩陣的乘積,注意Trap in Layout

View.finalOpacity()

當(dāng)前視圖的不透明度與父視圖的最終不透明度的乘積

View.position()

獲取視圖最終在屏幕上的位置,注意Trap in Layout

實(shí)際上這個(gè)方法返回的是view.finalMatrix()最終矩陣中的translate位移分量

Trap in Layout

  • 對(duì)于Layout視圖而言,如果當(dāng)前視圖或相關(guān)視圖有更改過與布局相關(guān)的屬性,

這時(shí)如果立即獲取與屏幕位置相關(guān)的屬性值或方法調(diào)用結(jié)果可能會(huì)不準(zhǔn)確,

因?yàn)椴季忠晥D始終都在渲染前才進(jìn)行更新,這時(shí)應(yīng)該使用到nextFrame(cb)這個(gè)函數(shù),

nextFrame(cb)總是在渲染完幀后執(zhí)行

View.overlapTest(point)

給定一個(gè)屏幕中上的座標(biāo)點(diǎn)測(cè)試是否被視圖包圍

View.addClass(name)

添加class樣式選擇器

View.removeClass(name)

刪除class樣式選擇器

View.toggleClass(name)

切換class樣式選擇器

Get: View.childrenCount

返回子視圖數(shù)量

View.innerText

獲取與設(shè)置視圖內(nèi)部的文本

設(shè)置時(shí)不同的視圖結(jié)果會(huì)有所不同,與appendText(text)類似

View.id

獲取或設(shè)置id,這個(gè)id在同一個(gè)視圖控制器作作用域中不可以重復(fù)

可以通過topCtr.find(id)獲取這個(gè)視圖

Get: View.controller

Get: View.ctr

如果這個(gè)視圖擁有ViewController可通過ctrcontroller獲取它,

這個(gè)視圖稱之為關(guān)鍵視圖,ViewController稱之為成員視圖控制器,

關(guān)鍵視圖下面所有后代視圖以及子視圖控制器都屬于這個(gè)作用域中的成員,

成員視圖的top屬性都指向當(dāng)前關(guān)鍵視圖,成員視圖的topCtr以及子視圖控制器的parent都指向成員視圖控制器屬性,

如果這些成員有具名的id,可以通過成員視圖控制器ViewController.find(id)找到這些成員

Get: View.top

指向關(guān)鍵視圖

Get: View.topCtr

指向成員視圖控制器

Get: View.parent

返回父視圖,Root沒有父視圖

Get: View.prev

上一個(gè)兄弟視圖

Get: View.next

下一個(gè)兄弟視圖

Get: View.first

第一個(gè)子視圖

Get: View.last

最后一個(gè)子視圖

View.x

矩陣變換中的位移translate.x

View.y

矩陣變換中的位移translate.y

View.scaleX

矩陣變換縮放x

View.scaleY

矩陣變換縮放y

View.rotateZ

矩陣變換旋轉(zhuǎn)z

View.skewX

矩陣變換斜歪x

View.skewY

矩陣變換斜歪y

View.opacity

不透明度

View.visible

顯示與隱藏true為顯示false隱藏,Layout不占用位置

Get: View.finalVisible

最終是否顯示或隱藏,受父視圖影響

View.translate

矩陣變換位移

View.scale

矩陣變換縮放

View.skew

矩陣變換斜歪

View.originX

矩陣變換的原點(diǎn)x,默認(rèn)為0

View.originY

矩陣變換的原點(diǎn)x,默認(rèn)為0

View.origin

矩陣變換的原點(diǎn),默認(rèn)為vec2(0,0)

Get: View.matrix

基礎(chǔ)矩陣,通過計(jì)算從父視圖矩陣開始的位移,縮放,旋轉(zhuǎn),歪斜得到的矩陣。注意Trap in Layout

Get: View.level

gui視圖樹中的等級(jí)level, Root視圖為1, 如果為0表示這個(gè)視圖還沒有父視圖

View.needDraw

強(qiáng)制必需渲染該視圖

needDraw=false

如果這個(gè)值為false在渲染優(yōu)化中會(huì)忽略沒有在屏幕范圍內(nèi)的視圖元素,

以及這個(gè)視圖下的所有后代視圖不管這些后代視圖是否在屏幕范圍內(nèi)部,

當(dāng)這個(gè)值為true時(shí)會(huì)強(qiáng)制繪制這個(gè)視圖不管是否在屏幕范圍內(nèi)外。

View默認(rèn)為true,那些可見的視圖默認(rèn)都為false如:Div/Sprite/Hybrid

View.receive

是否響應(yīng)接收事件,默認(rèn)為false不接收,事件會(huì)穿透到最底層直到有視圖接收并處理該事件,

但當(dāng)有事件監(jiān)聽時(shí)會(huì)自動(dòng)設(shè)置為true,當(dāng)然你可以手動(dòng)關(guān)閉它。

View.isFocus

是否為焦點(diǎn)狀態(tài),焦點(diǎn)狀態(tài)可以響應(yīng)鍵盤事件,以及非觸屏與非鼠標(biāo)事件,當(dāng)然你要確保receive為打開狀態(tài)

Get: View.viewType

返回視圖類型的id不同的視圖都有唯一的值

View.style

實(shí)際上設(shè)置與返回都為自己,這個(gè)屬性只為便捷性而存在

Get: View.class

返回class樣式表選擇器對(duì)像

Set: View.class

設(shè)置class樣式表選擇器

Example:

// Prints:
// {
//   name: "a b"
// }
view.class = 'a b'
console.log(view.class);

Class: Sprite

圖像精靈類型,非Layout視圖, 任何變化都不會(huì)激活局部布局或連鎖布局反應(yīng),

通過此它可以選取圖像任意位置大小顯示到屏幕,

在需要更高性能的地方可考慮使用它代替Image視圖

Sprite.src

圖像路徑,reader中支持的路徑協(xié)議都可以

或者使用$(path)函數(shù)讀取包內(nèi)路徑文件

Sprite.width

Default0

  • 浮點(diǎn)類型的寬度,這里的單位并非為像素,這要參照DisplayPort設(shè)置的尺寸與屏幕的縮放

  • 這個(gè)值也表示選取圖像的寬度,當(dāng)然這個(gè)值會(huì)受ratio影響,ratio越小實(shí)際選取的圖像范圍越大

Sprite.height

浮點(diǎn)類型的高度 Default0

Sprite.start

  • 開始選取圖像的開始位置,這個(gè)值為圖像的實(shí)際像素值,但受ratio的影響

  • 如: 現(xiàn)在有一張實(shí)際像素為100*100像素的圖像,start設(shè)置為vec2(25,25)

如果ratio=vec2(0.5,0.5)那么實(shí)際選取的位置為圖像的vec2(50,50)的位置與ratio成反比

實(shí)際上現(xiàn)在可以將這張圖像看做為50*50比實(shí)際縮小了0.5

Defaultvec2(0,0)

Sprite.startX

選取圖像有開始位置x Default0

Sprite.startY

選取圖像有開始位置y Default0

Sprite.ratio

圖像本身的縮放比例尺,這個(gè)值越小顯示的圖像范圍越大,實(shí)際反應(yīng)在屏幕上圖像比例會(huì)變得更小

Defaultvec2(1,1)

Sprite.ratioX

圖像比例尺x

Sprite.ratioY

圖像比例尺y

Sprite.repeat

圖像是否重復(fù),默認(rèn)為不重復(fù)none, 可選的值參見Repeat

  • 運(yùn)行在OpenGLES 2.0模式時(shí)這里設(shè)置為重復(fù)時(shí),可能會(huì)出現(xiàn)圖像不顯示的情況,

    因?yàn)?code>gles2.0建議使用非2^n尺寸圖像,這有利于性能優(yōu)化,現(xiàn)在還有很多低端Android設(shè)備運(yùn)行gles2.0

所以需要盡量注意在這些設(shè)備上使用非2^n尺寸圖像

Class: Label

標(biāo)簽文本視圖對(duì)像,具備簡(jiǎn)單的文本布局,任何變化都不會(huì)激活聯(lián)鎖布局計(jì)算,在要爾更高性能的地方可考慮使用

Get: Label.length

獲取標(biāo)簽視圖文本內(nèi)容長(zhǎng)度

Label.value

獲取與設(shè)置廣本值

Get: Label.textHoriBearing

文本基線距離文本頂部的距離,不同字體與不同尺寸字號(hào)會(huì)不相同

Get: Label.textHeight

文本頂部與底部的距離

Label.textAlign

標(biāo)簽文本的對(duì)齊與排列方式 Default left

支持以下方式:

  • left - 從左到右排列并且以左邊對(duì)齊

  • right - 從左到右排列并且以右邊對(duì)齊

  • center - 從左到右排列并且以居中對(duì)齊

  • leftReverse - 從右到左排列并且以左邊對(duì)齊

  • rightReverse - 從右到左排列并且以右邊對(duì)齊

  • centerReverse - 從右到左排列并且以居中對(duì)齊

Class: Layout

  • abstract class
  • extends View

  • 所有布局視圖的基礎(chǔ)類型,這是個(gè)抽象類型并沒有構(gòu)造函數(shù),

  • 繼承于它的視圖屬性的變化都會(huì)一定程度的引起布局計(jì)算,以及影響到與它相關(guān)的兄弟、父級(jí)、后代視圖的布局計(jì)算,

所以它相對(duì)于沒有自動(dòng)布局運(yùn)算的視圖性能要低,你可以合理使用這些類型來達(dá)到更好的性能,

  • 比如在設(shè)置尺寸時(shí)盡量使用明確的數(shù)值盡量少使用fullauto之類模糊值,模糊的值有時(shí)需要進(jìn)行多次迭代布局運(yùn)算才能得出結(jié)果,

甚至你可以將布局視圖與非布局視圖相互嵌套使用來阻斷連鎖布局。

Get: Layout.clientWidth

布局的clientWidth寬度,在Box中這個(gè)值包含finalMargin

Get: Layout.clientHeight

布局的clientHeight高度,在Box中這個(gè)值包含finalMargin

Class: Span

  • 這個(gè)視圖一般用來包裹TextNode并設(shè)置其文本樣式,因?yàn)?a href="ngui.md#class-textlayout">TextLayout屬性具有繼承性質(zhì)

Class: TextNode

  • 文本布局的葉子視圖,它不能再存在子視圖

Get: TextNode.length

文本字符串的長(zhǎng)度

TextNode.value

獲取與設(shè)置文本字符串

Get: TextNode.textHoriBearing

文本基線距離文本頂部的距離,不同字體與不同尺寸字號(hào)會(huì)不相同

Get: TextNode.textHeight

文本頂部與底部的距離

Class: Box

  • abstract class
  • extends Layout

盒子模型,布局的核心部件,這是個(gè)抽象類型并沒有構(gòu)造函數(shù)

Box.width

盒子的寬度,應(yīng)盡量使用明確值來降低布局運(yùn)算 Defaultauto

盒子的尺寸在布局運(yùn)算結(jié)果中分為明確值與模糊

可選的值:

  • auto - 自動(dòng)模糊值受內(nèi)部擠壓影響,擠壓也會(huì)影響到父視圖與兄弟視圖導(dǎo)致連鎖反應(yīng)會(huì)使它們的重新布局

  • full - 設(shè)置為這個(gè)類型的值時(shí)不管父視圖是否有明確值都會(huì)填滿父視圖width

當(dāng)然這里是使用clientWidth填滿,所以這里還需要marginborder參與運(yùn)算。

使用這個(gè)類型的值時(shí),如果父視圖沒有明確寬度值,會(huì)導(dǎo)致最長(zhǎng)最復(fù)雜的迭代運(yùn)算。

  • pixel - 明確的像素?cái)?shù)值并非真正就義上的像素,使用浮點(diǎn)數(shù)表示但在這里不能為負(fù),

1代表屏幕的多少像素需要參照DisplayPort中設(shè)置的尺寸與屏幕的縮放

  • percent - 百分比值使用10%形式表示,取父視圖width的百分比值,需要父視圖有明確width,

否則百分比值不會(huì)生效,為模糊值與auto無(wú)異

  • minus - 減小值用10!形式表示,使用父視圖的最終width減去這個(gè)值得到的值,

與百分比一樣需要父視圖有明確width值,否則減小值不會(huì)生效,為模糊值與auto無(wú)異

Box.height

盒子的高度,可選值參考height Defaultauto

Box.marginLeft

左邊的外邊距 Default0

可選的值:

  • auto - 當(dāng)父視圖width與當(dāng)前width都為明確值時(shí)才會(huì)生效,結(jié)果會(huì)等于父視圖最終width減去當(dāng)前width

如果marginRight同時(shí)為auto這個(gè)值減半,相當(dāng)于整個(gè)視圖在父視圖中居中

  • full - 與設(shè)置auto結(jié)果相同

  • pixel - 明確的數(shù)值,但不能為負(fù)數(shù)

  • percent - 使用父視圖的百分比,父視圖需要有明確寬度,否則無(wú)效

  • minus - 使用父視圖的最終width減去這個(gè)值得到的值,父視圖需要有明確寬度,否則無(wú)效

Box.marginTop

頂部的外邊距 可選值參考marginLeft Default0

Box.marginRight

右邊的外邊距 可選值參考marginLeft Default0

Box.marginBottom

底部的外邊距 可選值參考marginLeft Default0

Box.borderLeft

左邊框 Default0 #000000ff

Box.borderTop

上邊框 Default0 #000000ff

Box.borderRight

右邊框 Default0 #000000ff

Box.borderBottom

下邊框 Default0 #000000ff

Box.borderLeftWidth

左邊框?qū)挾?Default0

Box.borderTopWidth

上邊框?qū)挾?Default0

Box.borderRightWidth

右邊框?qū)挾?Default0

Box.borderBottomWidth

下邊框?qū)挾?Default0

Box.borderLeftColor

左邊框顏色 Default#000000ff

Box.borderTopColor

上邊框顏色 Default#000000ff

Box.borderRightColor

右邊框顏色 Default#000000ff

Box.borderBottomColor

下邊框顏色 Default0

Box.borderRadiusLeftTop

左上圓角尺寸 Default0

Box.borderRadiusRightTop

右上圓角尺寸 Default0

Box.borderRadiusRightBottom

右下圓角尺寸 Default0

Box.borderRadiusLeftBottom

左下圓角尺寸 Default0

Box.backgroundColor

背景顏色 Default #0000 不透明度為0的黑色

Box.newline

是否在新行開始布局 Default false

Get: Box.finalWidth

獲取最終寬度

Get: Box.finalHeight

獲取最高度

Get: Box.finalMarginLeft

獲取最終布局后的左外邊距寬度

Get: Box.finalMarginTop

獲取最終布局后的上外邊距寬度

Get: Box.finalMarginRight

獲取最終布局后的右外邊距寬度

Get: Box.finalMarginBottom

獲取最終布局后的下外邊距寬度

Set: Box.margin

同時(shí)設(shè)置全部外邊距

Set: Box.border

同時(shí)設(shè)置全部邊框

Set: Box.borderWidth

同時(shí)設(shè)置全部的邊框?qū)挾戎?/p>

Set: Box.borderColor

同時(shí)設(shè)置全部的邊框顏色值

Set: Box.borderRadius

同時(shí)設(shè)置全部的邊圓角值

Class: Div

盒子模型的一種實(shí)現(xiàn),定義內(nèi)部Box的對(duì)齊與排列方式,

并且會(huì)忽略非Box內(nèi)容的布局,不對(duì)其進(jìn)行布局計(jì)算

Div.contentAlign

內(nèi)容的對(duì)齊與排列方式 Default left

  • left - 水平布局,從左到右排列布局,溢出往下?lián)Q行

  • right - 水平布局,從右到左排列布局,溢出往下?lián)Q行

  • top - 垂直布局,從上到下排列布局,溢出往右邊換行

  • bottom - 垂直布局,從下到上排列布局,溢出往右換行

Class: Hybrid

盒子模型的一種實(shí)現(xiàn),定義內(nèi)部Layout的對(duì)齊與排列方式,

并且會(huì)忽略非Layout內(nèi)容的布局,不對(duì)其進(jìn)行布局計(jì)算

Hybrid.textAlign

內(nèi)容以及文本的對(duì)齊與排列方式 Default left

混合視圖只能使用水平布局:

  • left - 內(nèi)容從左到右排列并且以左邊對(duì)齊

  • right - 內(nèi)容從左到右排列并且以右邊對(duì)齊

  • center - 內(nèi)容從左到右排列并且以居中對(duì)齊

  • leftReverse - 內(nèi)容從右到左排列并且以左邊對(duì)齊

  • rightReverse - 內(nèi)容從右到左排列并且以右邊對(duì)齊

  • centerReverse - 內(nèi)容從右到左排列并且以居中對(duì)齊

Class: Limit

限制盒子,限制盒子的最小尺寸與最大尺寸

Limit.minWidth

實(shí)際為width屬性的別名,但在這里做為限制最小寬度使用

最小寬度不會(huì)超過maxWidth最大寬度的限制,如果超過取maxWidth

Default auto

Limit.minHeight

實(shí)際為height屬性的別名,但在這里做為限制最小高度使用

最小高度不會(huì)超過maxHeight最大高度的限制,如果超過取maxHeight

Default auto

Limit.maxWidth

限制最大寬度 Default auto

Limit.maxHeight

限制最大高度 Default auto

Class: Indep

獨(dú)立的盒子視圖,它的偏移位置不受布局方式的影響,布局方式以自身的對(duì)齊方式為準(zhǔn)

Indep.alignX

水平對(duì)齊方式,默認(rèn)為left,有效的值為:

  • left - 水平左對(duì)齊

  • cerent - 水平居中對(duì)齊

  • right - 水平右對(duì)齊

Indep.alignY

垂直對(duì)齊方式,默認(rèn)為top,有效的值為:

  • top - 垂直頂部對(duì)齊

  • cerent - 垂直居中對(duì)齊

  • bottom - 垂直底部對(duì)齊

Class: LimitIndep

獨(dú)立的限制盒子視圖,顧名思義兼具獨(dú)立盒子與限制盒子的特性

Indep.minWidth

實(shí)為width別名,但這里做為限制最小寬度使用 --> Limit.minWidth

Indep.minHeight

實(shí)為height別名,但這里做為限制最小高度使用 --> Limit.minHeight

Indep.maxWidth

限制最大寬度 --> Limit.maxWidth

Indep.maxHeight

限制最大高度 --> Limit.maxHeight

Class: Image

  • 圖像視圖的尺寸設(shè)置為auto時(shí)會(huì)使用源圖像的像素尺寸并不會(huì)受內(nèi)部擠壓,這與Div不同

  • 如果width為明確數(shù)值height=auto時(shí)高度會(huì)按圖像比例進(jìn)行縮放,

反過來height為明確數(shù)值時(shí)亦然相同,如果同時(shí)為auto使用源圖像的尺寸

Image.src

源圖像路徑,reader中支持的路徑協(xié)議都可以

或者使用$(path)函數(shù)讀取包內(nèi)路徑文件

Image.backgroundImage

背景圖像,這個(gè)屬性是為了在src圖像還在載入中時(shí)這個(gè)可以做為臨時(shí)圖像源使用

Get: Image.sourceWidth

源圖像的像素寬度

Get: Image.sourceHeight

源圖像的像素高度

Class: SelectPanel

按鈕面板視圖,它對(duì)Button有特別的作用,專門針對(duì)tv設(shè)備遙控器操作而設(shè)計(jì)

需要與Button配合使用,否則與Div無(wú)異

以下所說的切換都為按下遙控器或鍵盤時(shí)

SelectPanel.onFocusMove

內(nèi)部Button焦點(diǎn)切換時(shí)觸發(fā)

SelectPanel.allowLeave

是否允許內(nèi)部Button按鈕將焦點(diǎn)切換到外部

SelectPanel.allowEntry

是否允許外部Button按鈕將焦點(diǎn)切換到內(nèi)部

SelectPanel.intervalTime

切換的時(shí)間限制,離上一次切換時(shí)間不到intervalTime不允許切換

SelectPanel.enableSelect

是否允許內(nèi)部Button切換焦點(diǎn)

Get: SelectPanel.isActivity

是否激活狀態(tài),當(dāng)內(nèi)部Button擁有焦點(diǎn)時(shí)為激活狀態(tài)

Get: SelectPanel.parentPanel

SelectPanel視圖

Class: Button

按鈕視圖,這個(gè)視圖默認(rèn)綁定click后使用高亮樣式

Button.defaultHighlighted

是否使用高亮樣式默認(rèn),Default true

Button.setHighlighted(status)

設(shè)置高亮

Button.findNextButton(direction)

查找指定方向相鄰的按鈕,按鈕必需在SelectPanel才能查找,找不到返回null

Get: Button.panel

Class: Root

  • 根視圖,這個(gè)視圖暫時(shí)只能是唯一的但未來可能會(huì)變化

Class: BasicScroll

  • abstract class

滾動(dòng)面板的基礎(chǔ)類型,這是個(gè)抽象類型并沒有構(gòu)造函數(shù)

BasicScroll.scrollTo(scroll[,duration[,curve]])

滾動(dòng)到指定位置,并可指定滾動(dòng)動(dòng)畫的時(shí)間與曲線

  • @arg scroll {Vec2}
  • @arg [duration] {uint} ms, 過渡時(shí)間,不傳入?yún)?shù)使用defaultScrollDuration
  • @arg [curve] {Curve} 過渡的曲線,不傳入?yún)?shù)使用defaultScrollCurve

BasicScroll.terminate()

中止當(dāng)前過渡或慣性運(yùn)動(dòng)

BasicScroll.scroll

滾動(dòng)到指定位置

BasicScroll.scrollX

滾動(dòng)到指定x位置

BasicScroll.scrollY

滾動(dòng)到指定y位置

BasicScroll.scrollWidth

可滾動(dòng)內(nèi)容寬度

BasicScroll.scrollHeight

可滾動(dòng)內(nèi)容高度

BasicScroll.scrollbar

是否顯示滾動(dòng)條

BasicScroll.resistance

慣性滾動(dòng)阻力,最小0.5

BasicScroll.bounce

是否使用反彈 Default true

BasicScroll.bounceLock

是否鎖定反彈 Default true

當(dāng)內(nèi)容尺寸小于當(dāng)前Scroll尺寸時(shí)是否可以拖拽并反彈,true表示不能被拖拽

BasicScroll.momentum

拖拽是否引發(fā)慣性運(yùn)動(dòng)

BasicScroll.lockDirection

是否鎖定方向,只能往一個(gè)軸向滾動(dòng)

BasicScroll.catchPositionX

Default 1

  • 捕獲位置x,

  • scrollX最終總是會(huì)停止在捕獲值的倍數(shù)位置,

  • 小于1表示捕獲當(dāng)前Scroll視圖的finalWidth

BasicScroll.catchPositionY

Default 1

  • 捕獲位置y,小于1表示捕獲當(dāng)前Scroll視圖的finalHeight

BasicScroll.scrollbarColor

滾動(dòng)條的顏色

Get: BasicScroll.hScrollbar

當(dāng)前是否顯示hScrollbar

Get: BasicScroll.vScrollbar

當(dāng)前是否顯示vScrollbar

BasicScroll.scrollbarWidth

滾動(dòng)條的寬度

BasicScroll.scrollbarMargin

滾動(dòng)條的邊距

BasicScroll.defaultScrollDuration

調(diào)用scrollTo 或設(shè)置scroll時(shí)的默認(rèn)滾動(dòng)過渡時(shí)間,Default 0

BasicScroll.defaultScrollCurve

默認(rèn)滾動(dòng)曲線 Default easeOut

Class: Scroll

滾動(dòng)條的實(shí)現(xiàn)

Scroll.onScroll

滾動(dòng)時(shí)觸發(fā)

Scroll.focusMarginLeft

內(nèi)部按鈕切換時(shí)滾動(dòng)的左邊距

Scroll.focusMarginRight

內(nèi)部按鈕切換時(shí)滾動(dòng)的右邊距

Scroll.focusMarginTop

內(nèi)部按鈕切換時(shí)滾動(dòng)的上邊距

Scroll.focusMarginBottom

內(nèi)部按鈕切換時(shí)滾動(dòng)的下邊距

Scroll.focusAlignX

內(nèi)部按鈕切換時(shí)x軸滾動(dòng)對(duì)齊方式

Scroll.focusAlignY

內(nèi)部按鈕切換時(shí)y軸滾動(dòng)對(duì)齊方式

Scroll.enableFocusAlign

內(nèi)部按鈕切換時(shí)是否滾動(dòng)可見位置 Default true

Scroll.enableFixedScrollSize

設(shè)置并啟用固定滾動(dòng)大小,當(dāng)設(shè)置值為vec2(0,0)時(shí)禁用固定滾動(dòng)尺寸,使用實(shí)際內(nèi)容的滾動(dòng)尺寸

Class: Text

文本葉子視圖

Get: Text.length

文本字符串長(zhǎng)度

Text.value

獲取或設(shè)置文本字符串

Get: Text.textHoriBearing

文本基線距離文本頂部的距離,不同字體與不同尺寸字號(hào)會(huì)不相同

Get: Text.textHeight

文本頂部與底部的距離

Class: Input

單行文本輸入框

Text.type

文本鍵盤類型:

  • normal -
  • ascii -
  • number -
  • url -
  • numberPad -
  • phonePad -
  • namePhonePad -
  • email -
  • decimalPad -
  • twitter -
  • webSearch -
  • asciiNumnerPad -

Text.returnType

文本框鍵盤返回類型:

  • normal -
  • go -
  • join -
  • next -
  • route -
  • search -
  • send -
  • done -
  • emergencyCall -
  • continue -

Text.placeholder

當(dāng)文本框值為空時(shí),顯示的占位字符串

Text.placeholderColor

占位字符顏色

Text.security

是否將文本顯示為安全模式

Text.textMargin

文本內(nèi)容顯示的左右邊距

Class: Textarea

多行文本輸入框

Class: Clip

裁剪視圖,可以將溢出盒子外部的內(nèi)容裁剪掉

Class: TextFont

  • abstract class

普通文本與字體屬性,這是個(gè)抽象類型并沒有構(gòu)造函數(shù)

View.textBackgroundColor

文本背景顏色 Default inherit

View.textColor

文本顏色 Default inherit

View.textSize

文本字號(hào)大小 Default inherit

View.textStyle

文本樣式 Default inherit

  • inherit - 繼承
  • light - 細(xì)體
  • regular - 正常
  • bold - 粗體
  • ...

View.textFamily

文本字體家族名稱列表字符串,多個(gè)使用逗號(hào)分割 Default inherit

View.textShadow

文本陰影 Default inherit

View.textLineHeight

文本行高 Default inherit

可選的值為

  • inherit - 繼承
  • auto - 使用字體文件中的默認(rèn)值
  • xxx - 具體數(shù)值

View.textDecoration

文本裝飾 Default inherit

  • inherit - 繼承父視圖
  • none - 無(wú)裝飾
  • overline - 上劃線
  • lineThrough - 中劃線
  • underline - 下劃線

Class: TextLayout

布局文本字體屬性,這是個(gè)抽象類型并沒有構(gòu)造函數(shù)

View.textOverflow

文本溢出動(dòng)作 Default inherit

  • inherit - 繼承父視圖
  • normal - 不做處理
  • clip - 修剪
  • ellipsis - 修剪并在文本末尾顯示省略號(hào)
  • centerEllipsis - 修剪并在文本中間顯示省略號(hào)

View.textWhiteSpace

文本空格處理方式 Default inherit

  • inherit - 繼承父視圖
  • normal - 保留所有空白,使用自動(dòng)wrap
  • noWrap - 合并空白序列,不使用自動(dòng)wrap
  • noSpace - 合并空白序列,使用自動(dòng)wrap
  • pre - 保留所有空白,不使用自動(dòng)wrap
  • preLine - 合并空白符序列,但保留換行符,使用自動(dòng)wrap

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)