博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
enyo官方开发入门教程翻译一Controls之Buttons
阅读量:5277 次
发布时间:2019-06-14

本文共 3141 字,大约阅读时间需要 10 分钟。

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"}

]}

当点击onyx.Button时会触发ontap事件,你可以指定处理方法来处理该事件。

{kind: "onyx.Button", content: "tap me", ontap: "buttonTapped"},

 

...

 

buttonTapped: function(inSender, inEvent) {

    // respond to the tap event

}

另外,你可以指定圆角、背景颜色或应用onyx的内置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中放一个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实现,它是onyx.Icon的一个子类。例:

{kind: "onyx.IconButton", src: "assets/my_icon.png"}

生成一个像buttonicon,但是不显示和button连在一起的矩形阴影。

使用onyx.Icon生成一个既有文字又有图片的button:

{kind: "onyx.Button", ontap: "buttonTap", components: [

    {kind: "onyx.Icon", src: "assets/my_icon.png"},

    {content: "tap me"}

]}

onyx.IconButtononyx.Button的一个不同点是IconButtonimagesrc属性假定是32*64button的上半部分在正常状态时显示,下半部分在active时显示。(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  is an enyo.Button designed to go inside an  (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());

        }

    }

});

注意有一个处理整个radio group的方法。当button tapped时,我们可以使用inEvent.originator来确定事件源。我们不需要显示声明radio button的类型。当一个control添加到onyx.RadioGroup,它的kind默认为onyx.RadioButton。(你可以设置radiogroupdefaultKind属性来改变这一默认行为)。

onyx.ToggleButton

看起来像两个状态的切换开关。每当点击toggle button它都会切换值并触发onChange事件。

{kind: "onyx.ToggleButton", onContent: "foo", offContent: "bar", onChange: "buttonToggle"},

 

...

 

buttonToggle: function(inSender, inEvent) {

    this.log("Toggled to value " + inEvent.value);

}

你可以使用CSS设置背景颜色来定制toggle buttonon状态的外观。

{kind: "onyx.ToggleButton", style: "background-color: #35A8EE;"}

最后,你可以调用getValue方法来索引button的值(返回一个boolean值):

queryToggleValue: function() {

    return this.$.toggleButton.getValue();

}

 

转载于:https://www.cnblogs.com/waimai/archive/2013/02/25/2932780.html

你可能感兴趣的文章
Inherits、CodeFile、CodeBehind
查看>>
使用Exceptionless记录日志
查看>>
Migration Necessary
查看>>
php第七节课
查看>>
高次同余方程求解
查看>>
[分治FFT]「CTSC2018」青蕈领主
查看>>
【转】NSMutableArray的正确使用
查看>>
CV届牛人
查看>>
jquery 点滴
查看>>
2016年5月29日周总结
查看>>
jQuery使用总结 - Core jQuery Selectors 选择器一2/4
查看>>
Python 优先级
查看>>
Splay(单点修改+查询)
查看>>
ASP.NET模板引擎技术
查看>>
UserDefault数据读取
查看>>
Perl 中的正则表达式
查看>>
P2756 魔术球问题 (网络流)
查看>>
Windows server 1709(不含UI)模板部署
查看>>
工具介绍
查看>>
Centos添加其他yum源
查看>>