enyo官方开发入门教程翻译一Controls之Buttons
Buttons
Onyx提供了種類豐富的button。本文將介紹最常用的幾類button。
onyx.Button
onyx.Button直接從enyo.button繼承而來,提供同樣的基本功能。
{kind:?"onyx.Toolbar",?components:?[
????{kind:?"enyo.Button",?content:?"enyo.Button"},
????{kind:?"onyx.Button",?content:?"onyx.Button"}
]}
當(dāng)點(diǎn)擊onyx.Button時(shí)會(huì)觸發(fā)ontap事件,你可以指定處理方法來處理該事件。
{kind:?"onyx.Button",?content:?"tap?me",?ontap:?"buttonTapped"},
?
...
?
buttonTapped:?function(inSender,?inEvent)?{
????//?respond?to?the?tap?event
}
另外,你可以指定圓角、背景顏色或應(yīng)用onyx的內(nèi)置button樣式來定制button的外形:
{kind:?"onyx.Toolbar",?components:?[
????{kind:?"onyx.Button",?content:?"tap?me"},
????{kind:?"onyx.Button",?content:?"purple",?style:?"background-color:?purple;?color:?#F1F1F1;"},
????{kind:?"onyx.Button",?content:?"yes",?classes:?"onyx-affirmative"},
????{kind:?"onyx.Button",?content:?"no",?classes:?"onyx-negative"},
????{kind:?"onyx.Button",?content:?"onyx-blue",?classes:?"onyx-blue"}
]}
你也可以在button中放一個(gè)image,使用或省略文字,如:
{kind:?"onyx.Button",?ontap:"buttonTapped",?components:?[
????{kind:?"onyx.Icon",?src:?"https://github.com/enyojs/enyo/wiki/assets/fish_bowl.png"}
]}
{kind:?"onyx.Button",?ontap:"buttonTapped",?components:?[
????{tag:?"img",?attributes:?{src:?"https://github.com/enyojs/enyo/wiki/assets/fish_bowl.png"}},
????{content:?"Go?Fish"}
]}
onyx.IconButton
類似的效果也可以使用onyx.IconButton實(shí)現(xiàn),它是onyx.Icon的一個(gè)子類。例:
{kind:?"onyx.IconButton",?src:?"assets/my_icon.png"}
生成一個(gè)像button的icon,但是不顯示和button連在一起的矩形陰影。
使用onyx.Icon生成一個(gè)既有文字又有圖片的button:
{kind:?"onyx.Button",?ontap:?"buttonTap",?components:?[
????{kind:?"onyx.Icon",?src:?"assets/my_icon.png"},
????{content:?"tap?me"}
]}
onyx.IconButton和onyx.Button的一個(gè)不同點(diǎn)是IconButton中image的src屬性假定是32*64,button的上半部分在正常狀態(tài)時(shí)顯示,下半部分在active時(shí)顯示。(By?contrast,?when?you?activate?an?onyx.Button?that?contains?an?image,?the?state?change?is?reflected?in?the?button's?background,?but?not?in?the?image?itself.)
onyx.RadioButton
In?Enyo?2,?an?onyx.RadioButton?is?an?enyo.Button?designed?to?go?inside?an?onyx.RadioGroup?(a?horizontally-oriented?group?of?buttons?in?which?tapping?on?one?button?will?release?any?previously-tapped?button).
例:
enyo.kind({
????name:?"RadioGroupSample",
????kind:?"Control",
????components:?[
????????{kind:?"onyx.RadioGroup",?onActivate:?"radioActivated",?components:?[
????????????{content:?"Alpha"},
????????????{content:?"Beta"},
????????????{content:?"Gamma"}
????????]},
????????{name:?"statusText",?content:?"Please?make?a?selection"}
????],
????radioActivated:?function(inSender,?inEvent)?{
????????if?(inEvent.originator.getActive())?{
????????????this.$.statusText.setContent("Current?selection:?"?+
????????????inEvent.originator.getContent());
????????}
????}
});
注意有一個(gè)處理整個(gè)radio?group的方法。當(dāng)button?tapped時(shí),我們可以使用inEvent.originator來確定事件源。我們不需要顯示聲明radio?button的類型。當(dāng)一個(gè)control添加到onyx.RadioGroup,它的kind默認(rèn)為onyx.RadioButton。(你可以設(shè)置radiogroup的defaultKind屬性來改變這一默認(rèn)行為)。
onyx.ToggleButton
onyx.ToggleButton看起來像兩個(gè)狀態(tài)的切換開關(guān)。每當(dāng)點(diǎn)擊toggle?button它都會(huì)切換值并觸發(fā)onChange事件。
{kind:?"onyx.ToggleButton",?onContent:?"foo",?offContent:?"bar",?onChange:?"buttonToggle"},
?
...
?
buttonToggle:?function(inSender,?inEvent)?{
????this.log("Toggled?to?value?"?+?inEvent.value);
}
你可以使用CSS設(shè)置背景顏色來定制toggle?button的on狀態(tài)的外觀。
{kind:?"onyx.ToggleButton",?style:?"background-color:?#35A8EE;"}
最后,你可以調(diào)用getValue方法來索引button的值(返回一個(gè)boolean值):
queryToggleValue:?function()?{
????return?this.$.toggleButton.getValue();
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/waimai/archive/2013/02/25/2932780.html
總結(jié)
以上是生活随笔為你收集整理的enyo官方开发入门教程翻译一Controls之Buttons的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 监测linux一些重要文件md5值脚本
- 下一篇: linux 文件大小ll和du不一致问题