- 浏览: 820047 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (360)
- Java (101)
- JPA/Hibernate (10)
- Spring (14)
- Flex/BlazeDS (37)
- Database (30)
- Lucene/Solr/Nutch (0)
- Maven/Ant (25)
- CXF/WebService (3)
- RPC/RMI/SOAP/WSDL (1)
- REST (6)
- TDD/BDD/JUnit (1)
- Servlet/JSP (2)
- AI/MachineLearning (3)
- Resource (1)
- 字符编码 (2)
- OOA/OOPS/UML (5)
- DesignPattern (8)
- 算法与数据结构 (11)
- Web&App Server (13)
- 并发&异步&无阻塞 (7)
- Entertainment (4)
- JavaScript/ExtJS (45)
- CodeStyle&Quality (1)
- svn/git/perforce (8)
- JSON (2)
- JavaScriptTesting (4)
- Others (6)
- RegularExpression (2)
- Linux/Windows (12)
- Protocal (2)
- Celebrities (1)
- Interview (1)
- 计算机语言 (1)
- English (2)
- Eclipse (5)
- TimeZone/时区 (1)
- Finance (1)
- 信息安全 (1)
- JMS/MQ (2)
- XSD/XML/DTD (3)
- Android (4)
- 投资 (3)
- Distribution (3)
- Excel (1)
最新评论
-
qdujunjie:
如果把m换成具体的数字,比如4或者5,会让读者更明白
m阶B树中“阶”的含义 -
java-admin:
不错,加油,多写点文章
关于Extjs的mixins和plugin -
xiehuaidong880827:
你好,我用sencha cmd打包完本地工程后,把app.js ...
ExtJS使用Sencha Cmd合并javascript文件为一个文件 -
KIWIFLY:
lwpan 写道inverse = "true&qu ...
Hibernate中什么时候使用inverse=true -
luedipiaofeng:
good
消除IE stop running this script弹出框
DashBorder class
Usage example:
package { import mx.core.UIComponent; public class DashBorder extends UIComponent{ private var dashlen:Number = 5; private var gaplen:Number = 5; public function DashBorder(){ super(); } override protected function updateDisplayList (unscaledWidth:Number, unscaledHeight:Number):void{ super.updateDisplayList(unscaledWidth, unscaledHeight); var borderThickness:int = getStyle("borderThickness"); var borderColor:int = getStyle("borderColor"); var backgroundColor:int = getStyle("backgroundColor"); var backgroundAlpha:Number = getStyle("backgroundAlpha"); graphics.clear(); graphics.beginFill(backgroundColor, backgroundAlpha); graphics.drawRect(0, 0, unscaledWidth, unscaledHeight); graphics.lineStyle(borderThickness, borderColor, 1) if (getStyle("dashlen")) { this.dashlen = getStyle("dashlen"); } if (getStyle("gaplen")) { this.gaplen = getStyle("gaplen"); } drawBorder(this.x, this.y, unscaledWidth, unscaledHeight, this.dashlen, this.gaplen); } public function drawLine(x1:Number, y1:Number, x2:Number, y2:Number, dashlen:Number, gaplen:Number): void { if((x1 != x2) || (y1 != y2)){ var incrlen:Number = dashlen + gaplen; var len:Number = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); var angle:Number = Math.atan((y2 - y1) / (x2 - x1)); var steps:uint = len / (dashlen + gaplen); var dashstepx:Number = dashlen * Math.cos(angle); if (x2 < x1) dashstepx *= -1; var dashstepy:Number = dashlen * Math.sin(angle); var gapstepx:Number = gaplen * Math.cos(angle); if (x2 < x1) gapstepx *= -1; var gapstepy:Number = gaplen * Math.sin(angle); var stepcount:uint = 0; while ((stepcount++) < steps) { var dashstartx:Number; var dashstarty:Number; var dashendx:Number; var dashendy:Number; if(x1 == x2 && y1 != y2){ dashstartx = dashendx = x1; if(y2 > y1){ dashstarty = y1 + ((stepcount-1) * (dashlen + gaplen)); dashendy = dashstarty + dashlen; }else{ dashstarty = y1 - ((stepcount-1) * (dashlen + gaplen)); dashendy = dashstarty - dashlen; } }else if(y1 == y2 && x1 != x2){ dashstarty = dashendy = y1; if(x2 > x1){ dashstartx = x1 + ((stepcount-1) * (dashlen + gaplen)); dashendx = dashstartx + dashlen; }else{ dashstartx = x1 - ((stepcount-1) * (dashlen + gaplen)); dashendx = dashstartx - dashlen; } } graphics.moveTo(dashstartx, dashstarty); graphics.lineTo(dashendx, dashendy); } } } private function drawBorder(x1:Number, y1:Number, width:Number, height:Number, dashlen:Number, gaplen:Number) : void { var borderSides:String = getStyle("borderSides"); if (borderSides != "left top right bottom") { // Adjust metrics based on which sides we have if (borderSides.indexOf("left") != -1){ drawLine(x1, y1 + height, x1, y1, dashlen, gaplen); } if (borderSides.indexOf("top") != -1){ drawLine(x1, y1, x1 + width, y1, dashlen, gaplen); } if (borderSides.indexOf("right") != -1){ drawLine(x1 + width, y1, x1 + width, y1 + height, dashlen, gaplen); } if (borderSides.indexOf("bottom") != -1){ drawLine(x1 + width, y1 + height, x1, y1 + height, dashlen, gaplen); } } } } }
Usage example:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" verticalGap="20" backgroundGradientColors="0xFFFFFF, 0xFFFFFF" backgroundColor="0xFFFFFF" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ [Bindable] private var numValid:uint = 0; private function applyStyles():void{ nv.validate(dash.text); nv.validate(gap.text); nv.validate(thickness.text); if(numValid == 3){ var myBorderStyle:CSSStyleDeclaration = new CSSStyleDeclaration('myBorderStyle'); myBorderStyle.setStyle('dashlen', Number(dash.text)); myBorderStyle.setStyle('gaplen', Number(gap.text)); myBorderStyle.setStyle('borderThickness', Number(thickness.text)); StyleManager.setStyleDeclaration("DashBorder", myBorderStyle, true); } numValid = 0; } ]]> </mx:Script> <mx:NumberValidator id="nv" allowNegative="false" domain="real" valid="numValid++;" invalid="mx.controls.Alert.show('ERROR: dash length, gap length, and border thickness must be (positive) numbers.');"/> <mx:Form label="Choose Dashed Border Properties"> <mx:FormItem label="Dash Length"> <mx:TextInput id="dash" width="100" text="5"/> </mx:FormItem> <mx:FormItem label="Gap Length"> <mx:TextInput id="gap" width="100" text="5"/> </mx:FormItem> <mx:FormItem label="Border Thickness"> <mx:TextInput id="thickness" width="100" text="1"/> </mx:FormItem> <mx:FormItem> <mx:Button id="apply" label="Apply Styles" click="applyStyles()"/> </mx:FormItem> </mx:Form> <mx:VBox id="vb" borderSkin="DashBorder" width="250" height="20" borderColor="0xFF0000" backgroundColor="0xFFFFFF" borderSides="bottom" horizontalAlign="center" verticalAlign="middle"> </mx:VBox> <mx:VBox borderStyle="solid" borderSides="bottom" width="250" height="20"/> </mx:Application>
发表评论
-
Panel高度为0但里面的组件依旧显示
2013-04-24 14:34 1147解决办法: 把Panel中的内容组件用<s:Scroll ... -
约束布局constraint layout
2013-03-01 14:02 1914约束布局constraint layout要点: 1)只有支持 ... -
根据屏幕分辨率动态调整组件大小
2013-02-22 17:34 1593将代码写在组件的preInitialize事件监听器里面 简化 ... -
设置Flex组件的尺寸大小
2013-02-21 16:17 1610深红色部分标明了需注意的地方 另外要注意组件和容器的生命周 ... -
Flex minWidth minHeight
2013-02-04 16:17 1604minWidth 这个值并不是给组件自己用的,而是给组件的父容 ... -
ActionScript遍历绑定(BindProperty,BindSetter,ChangeWatcher)
2013-02-01 10:11 2555注意: 为防止内存益处,记得调用watcherInstance ... -
Flex程序适应不同屏幕尺寸和分辨率(滚动条)
2013-01-31 15:02 9938FlashBuilder编译后自动生成的xx.html里面定义 ... -
FlexContext, FlexClient,FlexSession
2013-01-15 15:05 2469使用了BlazeDS后,可以从FlexContext中获取一系 ... -
防止RemoteObject批处理AMF消息
2013-01-14 17:01 1378问题描述: 如果你在短时内调用同一个java对象上的两个方法, ... -
自动检测http和https的RemoteObject
2013-01-13 10:30 1909package { import util.Bro ... -
flex浏览器相关辅组类
2012-12-06 13:39 1319package util { import flash. ... -
Flex可变参数带来的问题
2012-12-06 13:34 1574当你在flex的方法中用了可变参数后,你会发现这些参数传到ja ... -
flex如何通过类名称实例化对象
2012-11-30 13:52 2803Getting the class from an objec ... -
flexlib的treeGrid用法
2012-11-30 13:46 1363为了使用treeGrid,通常你需要定义自己的DataDesc ... -
自定义flex tree的DataDescriptor
2012-11-30 13:42 1469public class EnvironmentDataDes ... -
关于Boolean类型在flex与java中间传递的问题
2012-11-30 13:38 1317/** *为简化,只列举两个字段 */ publi ... -
给Flex的Tree赋值方式(XML和ArrayCollection)
2012-11-30 09:33 40891)方式一,mxml内嵌xml数据赋值方式,Embedded ... -
Custom Alert
2012-11-26 19:21 0<?xml version="1.0&qu ... -
Flex服务端分页
2012-11-14 17:00 1119Structure: model event ... -
Flex可携带数据的Aler组件(DataCarriableAlert)
2012-11-14 16:52 1412package component.alert { ...
相关推荐
在CSS3中,还有新的边框样式,如虚线边框`dashed`,点线边框`dotted`,以及渐变边框等。通过`border-image`属性,我们可以使用图像创建复杂的边框效果。 此外,`display`属性中的`flex`和`grid`布局模式,结合边距...
- `border-style: dotted;` 点状边框。 - `border-style: dashed;` 虚线边框。 - `border-style: solid;` 实线边框。 - `border-style: double;` 双线边框。 - `border-style: groove;` 凹槽边框。 - `border-...
边框样式有多种,如`solid`(实线)、`dotted`(点线)、`dashed`(虚线)、`double`(双线)、`groove`(槽状)、`ridge`(脊状)、`inset`(嵌入)和`outset`(突出)。边框颜色可以使用颜色名称、十六进制、RGB或...
4. `border-style`: 设置边框样式,如`solid`(实线)、`dashed`(虚线)、`dotted`(点线)等。 5. `border-color`: 设置边框颜色,可使用颜色名、十六进制、RGB或RGBA值。 【CSS文本属性】 文本属性用来控制元素...
**Dashed(虚线)** - 边框样式之一,表现为一系列短断开的线段。 - 可以通过`border-style: dashed`属性实现。 **Contact(联系)** - 与用户交互的方式,如网站的联系页面或表单。 - 可以使用CSS来设计表单的布局...
* Solid/Dashed/Dotted: 实线、虚线和点虚线,用于设置边框的样式。 * Border-radius: 圆角,用于设置元素的圆角样式。 * Shadow: 阴影,用于设置元素的阴影效果。 * Display: 展示,用于设置元素的展示方式。 * ...
- **虚线 (`dashed`)** - **点线 (`dotted`)** - **双实线 (`double`)** - **立体 (`groove`)** - **隐藏 (`hidden`)** - **向内 (`inset`)** 这些边框样式为网页提供了丰富的视觉效果。 #### 背景样式 - **背景...