zoukankan      html  css  js  c++  java
  • EUI ToggleButton ToggleSwitch 实现类似音乐开关按钮

    一 ToggleButton和ToggleSwitch区别

    没区别,就是继承...

    export class ToggleSwitch extends ToggleButton {
            /**
             * @language en_US
             * Constructor.
             *
             * @version Egret 2.4
             * @version eui 1.0
             * @platform Web,Native
             */
            /**
             * @language zh_CN
             * 构造函数。
             *
             * @version Egret 2.4
             * @version eui 1.0
             * @platform Web,Native
             */
            public constructor() {
                super();
    
            }
        }

    二 ToggleSwitch实现音乐开关

    皮肤文件过于复杂,解读exml源码,使用滑块底图和滑块,根据按钮状态,设置滑块位置以及底图图片。

    这在重新定义皮肤上有点困难,比如你换一张滑块底图和滑块,你得按照这个皮肤去调。。。

    <?xml version="1.0" encoding="utf-8"?>
    <e:Skin class="skins.ToggleSwitchSkin" states="up,down,disabled,upAndSelected,downAndSelected,disabledAndSelected" xmlns:e="http://ns.egret.com/eui">
        <e:Image source="on_png"
                 source.up="off_png"
                 source.down="off_png"
                 source.disabled="off_png"/>
        <e:Image source="handle_png"
                 horizontalCenter="-18"
                 horizontalCenter.upAndSelected="18"
                 horizontalCenter.downAndSelected="18"
                 horizontalCenter.disabledAndSelected="18"
                 verticalCenter="0"/>
    </e:Skin>

    三 用ToggleButton更方便

    和ToggleSwitch不同的是,ToggleSwitch图片是3张,滑块,滑块底图开,滑块底图关。

    ToggleButton图片2张,正常和按下图片。

    在按钮状态改变时,获取selected值,根据这个值去开关音乐。

    class HomScene extends eui.Component{
        private btn:eui.ToggleButton;
    
        public constructor() {
            super();
            this.skinName = "HomeSceneSkin";
        }
    
        public childrenCreated(){
            this.btn.addEventListener(eui.UIEvent.CHANGE, this.onChange, this);
        }
    
        private onChange(e:eui.UIEvent){
            let btn:eui.ToggleButton = e.target;
            console.log(btn.selected); //按下true, 正常false
        }
    
    }
  • 相关阅读:
    C++基础--if/else和switch/case的区别
    条件概率,联合概率,边缘概率及独立事件,古典概型
    Maven中的Archetype概念及作用用途
    Unable to execute 'doFinal' with cipher instance
    查看是否存在tomcat进程和关闭方法
    python中的‘’的作用
    sklearn中predict_proba()的用法例子(转)
    pandas.DataFrame.sample随机抽样
    最全的MonkeyRunner自动化测试从入门到精通(1)
    阿里创新自动化测试工具平台--Doom
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/6248140.html
Copyright © 2011-2022 走看看