pure actionscript3 button in flex ,

本文介绍了一个将CSS样式与ActionScript3结合的按钮组件实现方法,包括如何使用ActionScript3动态加载CSS皮肤,并通过事件监听实现不同状态下的皮肤切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

css:

.battlePropButton
{
upSkin: Embed(source="assets/battle/bat_prop1.png");
overSkin: Embed(source="assets/battle/bat_prop2.png");
downSkin: Embed(source="assets/battle/bat_prop3.png");
disabledSkin:  Embed(source="assets/battle/bat_prop3.png");
}


actionscript3 in flex , code is : 

package com.sandy.component.button.fl

{
import com.sandy.theme.SandyCSSManager;

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.MouseEvent;


public class SandyFLButton extends Sprite
{
public function SandyFLButton()
{
super();
__init__();

}

private var _enabled:Boolean = true;
public function get enabled():Boolean
{
return _enabled;
}
public function set enabled(value:Boolean):void
{
_enabled = value;
if(_enabled){
hideAll();
upSkin.visible = true
}else{
hideAll();
disabledSkin.visible = true;
}
}




public var click_f:Function;

protected function __init__():void
{
buttonMode = true;

this.addEventListener(MouseEvent.MOUSE_DOWN , onDownHandle);
this.addEventListener(MouseEvent.MOUSE_OVER , onOverHandle);
this.addEventListener(MouseEvent.MOUSE_OUT , onOutHandle);
this.addEventListener(MouseEvent.MOUSE_UP , onUpHandle);
}

private function onUpHandle(e:MouseEvent):void
{
hideAll();
upSkin.visible = true
}

private function onDownHandle(e:MouseEvent):void
{
hideAll();
downSkin.visible = true
if(click_f!=null) click_f();
}

private function onOverHandle(e:MouseEvent):void
{
hideAll()
overSkin.visible = true
}

private function onOutHandle(e:MouseEvent):void
{
hideAll()
upSkin.visible = true
}

private function hideAll():void
{
upSkin.visible = false;
overSkin.visible = false;
downSkin.visible = false;
disabledSkin.visible = false;
}

public function dispose():void
{
this.removeEventListener(MouseEvent.MOUSE_DOWN , onDownHandle);
this.removeEventListener(MouseEvent.MOUSE_OVER , onOverHandle);
this.removeEventListener(MouseEvent.MOUSE_OUT , onOutHandle);
this.removeEventListener(MouseEvent.MOUSE_UP , onUpHandle);
}


private var _styleName:String;
public function get styleName():String
{
return _styleName;
}
public function set styleName(value:String):void
{
_styleName = value;

add_upSkin();
add_overSkin();
add_downSkin();
add_disableSkin();

upSkin.visible = true
}

private var upSkin:Bitmap;
private var overSkin:Bitmap;
private var downSkin:Bitmap;
private var disabledSkin:Bitmap;

private function add_upSkin():void
{
if(upSkin==null){
var cls:Class = SandyCSSManager.getCssStyle(styleName,"upSkin");
upSkin = new cls as Bitmap;
addChild(upSkin);
upSkin.visible = false
}
}

private function add_overSkin():void
{
if(overSkin==null){
var cls:Class = SandyCSSManager.getCssStyle(styleName,"overSkin");
overSkin = new cls as Bitmap;
addChild(overSkin);
overSkin.visible = false;
}
}

private function add_downSkin():void
{
if(downSkin==null){
var cls:Class = SandyCSSManager.getCssStyle(styleName,"downSkin");
downSkin = new cls as Bitmap;
addChild(downSkin);
downSkin.visible = false;
}
}

private function add_disableSkin():void
{
if(disabledSkin==null){
var cls:Class = SandyCSSManager.getCssStyle(styleName,"disabledSkin");
disabledSkin = new cls as Bitmap;
addChild(disabledSkin);
disabledSkin.visible = false;
}
}

}

}


/************* SandyCSSManager ********************/

public static function getCssStyle(selector:String,styleProp:String):*
{
if(styleProp!="")
{
return StyleManager.getStyleDeclaration(selector).getStyle(styleProp);
}
else
{
return StyleManager.getStyleDeclaration(selector);
}
return null
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值