Flex学习记录(自定义popup弹出窗口的边框)

创建一个PanleSkin 类的子类,覆盖updateDisplayList 方法来绘画调出箭头。设定这个子类
为弹出窗口的borderSkin 风格。
2.13.3. 讨论
这个技术是基于Section 2.12CustomPopUp 组件修改的。定制你的窗口边框,这次设一个自
定义类CustomPanelSkin 到borderSkin 风格。
Code View:

<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
width="300" height="50"
styleName="customPopUp"
showCloseButton="true"
close="handleClose(event)"
borderSkin="CustomPanelSkin"
initialize="initPopUp()">
<mx:Style>
.customPopUp {
header-height:2;
padding-left:5;
padding-right:5;
padding-top:5;
padding-bottom:5;
border-color:#000000;
border-alpha:.5;
border-thickness-left:5;
border-thickness-right:5;
border-thickness-bottom:5;
border-thickness-top:5;
background-color:#666666;
color:#ffffff;
}
</mx:Style>
<mx:Text width="100%" height="100%" text="{message}"/>
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import mx.events.CloseEvent;
[Bindable]
public var message:String;
private function handleClose(evt:CloseEvent):void {
PopUpManager.removePopUp(this);
}
private function initPopUp():void {
this.isPopUp = true;
}
]]>
</mx:Script>
</mx:TitleWindow>

如下是CustomPanelSkin 类的代码。注意TitleWindow 的isPop 属性需要设为false,用来阻
止用户拖动弹出窗口。
Code View:

package
{
import flash.display.Graphics;
import mx.skins.halo.PanelSkin;
public class CustomPanelSkin extends PanelSkin
{
override protected function updateDisplayList(w:Number, h:Number):void {
super.updateDisplayList(w,h);
var gfx:Graphics = this.graphics;
gfx.beginFill(this.getStyle("borderColor"),
this.getStyle("borderAlpha"));
gfx.moveTo(this.getStyle("cornerRadius"),0);
gfx.lineTo(15,-10);
gfx.lineTo(25,0);
}
}
}

这个简单的类集成了TitleWindow 的默认边框皮肤类PanelSkin。updateDisplayList 方法被覆
盖,增加了在CustomPopUp 组件左上角绘制调出箭头的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值