Egret之Eui.Button換膚-創(chuàng)新互聯(lián)

在Gui中對Button換皮相當?shù)慕o力:

站在用戶的角度思考問題,與客戶深入溝通,找到汾西網(wǎng)站設(shè)計與汾西網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋汾西地區(qū)。

Gui.Button.skinName = new egret.gui.ButtonSkin(normal_resource, up_resource , disable_resource);

但是在EUI中沒有ButtonSkin類.所以找到了其他方法.

我用三種按鈕進行測試 : 1,有自定義皮膚的按鈕 2,沒有自定義皮膚的按鈕(三種狀態(tài)都有resource圖片) , 3,new的Button

測試View:

Egret之Eui.Button換膚

一 : 自定義皮膚情況

①,自定義皮膚 : AonauflyButton.exml

<?xml version="1.0" encoding="utf-8"?> <e:Skin class="skins.AonauflyButton"  states="up,down,disabled" width="75" height="75" xmlns:e="http://ns.egret.com/eui">     <e:Image width="100%" height="100%" scale9Grid="1,3,8,8" alpha.disabled="0.5"              source="變強01_png"              source.down="橙色小按鈕_png"              source.disabled="藍色小按鈕_png"/>     <e:Label id="labelDisplay" top="8" bottom="8" left="8" right="8"              size="20"              textColor="0xFFFFFF" verticalAlign="middle" textAlign="center"/>     <e:Image id="iconDisplay" horizontalCenter="0" verticalCenter="0"/> </e:Skin>

②,現(xiàn)在一個ButtonDemo.exml用于顯示如上圖.建一個Button,設(shè)置他的皮膚為我們的自定義皮膚

Egret之Eui.Button換膚

命名 : btn_demo

二 : 使用默認Button(三種狀態(tài)都有resource圖片)

Egret之Eui.Button換膚

命名 : btn_demo2

三 : 自定義一個Button , 命名 : $btn_demo3

代碼如下:

module app { export class ButtonDemo extends eui.Component implements eui.UIComponent { private btn_demo : eui.Button; private btn_demo2 : eui.Button; private $btn_demo3 : eui.Button; public constructor() { super(); this.skinName = "resource/eui_skins/ButtonDemo.exml"; } private handlerListener( isAdd : boolean ) : void{ this.touchEnabled = isAdd; if( isAdd ){ this.addEventListener( egret.TouchEvent.TOUCH_TAP , this.onclick , this ); }else{ this.removeEventListener( egret.TouchEvent.TOUCH_TAP , this.onclick , this ); } } private onclick( $e : egret.TouchEvent ) : void{ this.btn_demo.enabled = !this.btn_demo.enabled; this.btn_demo2.enabled = !this.btn_demo2.enabled; this.$btn_demo3.enabled = !this.$btn_demo3.enabled; } protected childrenCreated():void{ super.childrenCreated(); this.handlerListener(true); this.btn_demo.label="第一種情況"; this.btn_demo.icon = RES.getRes("button_down_png"); this.baseChildren4BTN(this.btn_demo); this.changeChildren4BTN( this.btn_demo ); egret.log("===== 第二種情況 ====="); this.baseChildren4BTN( this.btn_demo2 ); this.changeChildren4BTN( this.btn_demo2 ); egret.log("===== 第三種情況 ====="); this.$btn_demo3 = new eui.Button(); this.$btn_demo3.label = "第三種情況"; this.$btn_demo3.x = this.$btn_demo3.y = 250; this.addChild( this.$btn_demo3 ); this.baseChildren4BTN( this.$btn_demo3 ); this.changeChildren4BTN( this.$btn_demo3 ); } private baseChildren4BTN(btn : eui.Button) : void{ let $img2Btn_normal : eui.Image = <eui.Image>btn.getChildAt(0); egret.log(" 常態(tài) img 0 :" + $img2Btn_normal.source); // 改變常態(tài)img( 成功 ) // $img2Btn_normal.source = RES.getRes("藍色小按鈕_png"); let $label2Btn : eui.Label = <eui.Label>btn.getChildAt(1); egret.log(" 文本 1 :" + $label2Btn.text); if( btn.numChildren >= 3 ){ let $icon2Btn : eui.Image = <eui.Image>btn.getChildAt(2); if( $icon2Btn != null && $icon2Btn.source != null) egret.log("icon 2 :" + $icon2Btn.source.toString()); } } private changeChildren4BTN(btn : eui.Button) : void{ if( btn.skin != null && btn.skin.states != null){ let arr2States : eui.State[] = btn.skin.states; let target2State : eui.State = null; //up - 狀態(tài) target2State = arr2States[1]; let property2up: eui.SetProperty = <eui.SetProperty>target2State.overrides[ target2State.overrides.length -1]; if( property2up.name == "source" ){ egret.log("up : value ->" + property2up.value ); property2up.value = RES.getRes("藍色小按鈕_png"); } //disabled 狀態(tài) target2State = arr2States[2]; let property2d: eui.SetProperty = <eui.SetProperty>target2State.overrides[ target2State.overrides.length -1]; if( property2d.name == "source" ){ egret.log("--改變圖片資源--"); egret.log("disabled : value ->" + property2d.value ); property2d.value = RES.getRes("radiobutton_select_up_png"); }else if( property2d.name == "alpha" ){ egret.log("--改變圖片透明度--"); property2d.value = 0.3;//改變透明度 } } } } }

要更改normal :

Egret之Eui.Button換膚

要更改 up , disable :(可以同時有alpha和source , 可以同時得修改他們)

Egret之Eui.Button換膚

//******************************************************************************************************************

補充

public static setBtnSkin(btn: eui.Button, upImg, downImg, enableImg = null): void {                 if (btn.skin.states[0].overrides[0]["value"] == upImg && btn.skin.states[1].overrides[0]["value"] == downImg && btn.skin.states[2].overrides[0]["value"] == enableImg)                         return;                 btn.skin.states[1].overrides[0]["value"] = downImg;                 if (btn.enabled)                         btn.skin.states[2].overrides[0]["value"] = btn.skin.states[0].overrides[0]["value"];                 else                         btn.skin.states[0].overrides[0]["value"] = btn.skin.states[2].overrides[0]["value"]                 btn.enabled = !btn.enabled;                 DelayCall.call(1, EuiUtil.releaseBtn, EuiUtil, [btn, !btn.enabled, upImg, enableImg == null ? upImg : enableImg])         }         private static releaseBtn(btn: eui.Button, flag: boolean, upimg: string, disimg: string) {                 btn.skin.states[0].overrides[0]["value"] = upimg;                 btn.skin.states[2].overrides[0]["value"] = disimg;                 btn.enabled = flag;         }

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標題:Egret之Eui.Button換膚-創(chuàng)新互聯(lián)
URL鏈接:http://muchs.cn/article4/dphooe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站建站公司、ChatGPT網(wǎng)站內(nèi)鏈、Google、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站