flex的image控件没有border属性。这困扰了我很久。毕竟,做特效后,图片如果光秃秃的,很难看。
google了半天,大家的说法中,我倾向于改写Image控件。找到一个东东,我修改并新增了代码。
共享如下:
页面代码:
<?xml version="1.0"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:marsImage="mars.display.*"
backgroundColor="#000000"
layout="absolute">
<marsImage:BorderImage
borderAlpha="{aBar.value}"
borderWidth="{wBar.value}"
borderColor="{colorTool.selectedColor}"
source="@Embed('../img/panda.jpg')"
width="258" height="229" x="180" y="62"/>
<mx:Label x="180" y="327" text="请选择边框颜色" color="#FDFDFD" fontSize="16"/>
<mx:Label x="180" y="391" text="请选择边框宽度" color="#FDFDFD" fontSize="16"/>
<mx:Label x="377" y="391" text="请选择边框透明度" color="#FDFDFD" fontSize="16"/>
<mx:ColorPicker x="305" y="327" color="#FDFDFD" id="colorTool"/>
<mx:VSlider x="525" y="255" minimum="0" maximum="1" id="aBar" />
<mx:HSlider x="180" y="423" minimum="0" maximum="6" id="wBar"/>
</mx:Application>
控件代码如下:
package mars.display
{
import mx.controls.Image;
//边框颜色
[Style(name="borderColor", type="uint", format="Color", inherit="no")]
//边框宽度
[Style(name="borderWidth", type="Number", format="Length", inherit="no")]
//边框透明度
[Style(name="borderAlpha", type="Number", format="Length", inherit="no")]
public class BorderImage extends Image
{
public function BorderImage()
{
super();
}
override protected function updateDisplayList(w:Number, h:Number):void{
super.updateDisplayList(w,h);
graphics.clear();
graphics.lineStyle(getStyle('borderWidth'),getStyle('borderColor'),getStyle('borderAlpha'),false);
var x:Number=-(getStyle('borderWidth')/2);
var y:Number=-(getStyle('borderWidth')/2);
var width:Number=contentWidth+getStyle('borderWidth');
var height:Number=contentHeight+getStyle('borderWidth');
graphics.drawRect(x,y,width,height);
}
}
}
ok,看疗效:
分享到:
相关推荐
- 在组件类中添加图片资源,并设计布局,可能包括设置图片位置、大小以及与文本输入框的相对位置。 - 定义新的样式属性,如图片颜色、边框样式等,以便于在不同场景下调整外观。 - 可能还需要处理点击事件,例如...
Spacer组件用于在布局中添加空白空间,帮助调整其他控件的位置。 #### TabBar TabBar用于创建标签栏,便于在多个内容面板之间切换。 #### TileList TileList组件将项目以砖块或瓦片的形式排列,适用于图片集、产品...
- **ControlBar**: 控制栏组件,用于放置工具栏等控件。 - **DivideBox**: 可调整大小的容器,允许用户通过拖拽来调整子组件的大小。 - **Form、FormHeading、FormItem**: 表单及其相关的标题和表单项。 - **Grid、...
- **Flex布局**:小程序中常用的一种弹性盒模型布局,可以实现复杂的流式布局。 - **Grid布局**:基于网格系统,适用于需要多列对齐的场景。 - **样式控制**:包括颜色、字体、间距、边框等,可以通过wxss文件...
4. 背景与边框:background-image支持多个背景图层、线性渐变和径向渐变,以及背景裁剪和定位。 5. 动画与过渡:transition和animation属性实现了平滑的过渡效果和复杂的动画序列。 6. 弹性布局(Flexbox):通过...
例如,可以使用`background-image`属性添加自定义背景图片,或者使用`linear-gradient`创建渐变效果。 3. **布局控制**:使用`display`属性(如`flex`或`grid`)可以更好地控制表单元素的布局,实现响应式设计,...
在这个示例中,我们添加了一个事件监听器,当用户选择文件后,会读取文件内容并转换为DataURL,然后将这个数据赋值给预览图像的`src`属性。 同时,CSS可以用来美化文件上传按钮和周围的布局。例如,你可以用伪元素...
gradient)、背景图像层叠(background-image、background-size、background-origin、background-clip)、Flexbox布局和Grid布局、动画(@keyframes)以及响应式设计单位(如vw、vh)等。 【清除浮动的方式】 清除...
- 属性:每个HTML元素都可以有属性,如`<img src="image.jpg">`中的`src`属性指定图片源。 - 内联元素与块级元素:内联元素如`<span>`、`<a>`不会占据整行,而块级元素如`<div>`、`<p>`会自动换行。 2. CSS基础:...
而低版本的IE浏览器采用的盒子模型中,元素的宽度或高度仅包括内容区的宽度或高度,边框和内边距都包含在设定的宽度或高度之内。这种差异导致了在不同浏览器中的布局表现不一致,为了解决这个问题,CSS3引入了`box-...
属性:background-image:url(); 取值:url() 3.背景图像平铺 属性:background-repeat 取值: 1.repeat 默认值,横向和纵向同时平铺 2..repeat-x 纵向平铺 4.背景图像尺寸 属性:background-size: ...
通过CSS,我们可以为图片库添加样式,比如背景颜色、边框、阴影,甚至实现滑动效果和响应式设计。例如,使用CSS3的`display: flex`或`grid`可以轻松创建多列图片布局。 4. **JavaScript交互**:为了增加动态功能,...
10. **表单布局与间距**:`margin`属性用于控制元素间的间距,`flex-gap`和`grid-gap`在Flexbox和Grid布局中很有用。 11. **动画效果**:CSS动画可以增加交互性,如`transition`和`animation`属性可以实现平滑的...
- 添加/删除事件监听器(`addEventListener()`, `removeEventListener()`等)。 - **事件处理**: - 鼠标事件(`onclick`, `onmouseover`等)。 - 键盘事件(`onkeydown`, `onkeyup`等)。 - **Ajax请求**: - 使用`...
利用 `background-image` 或 `content` 属性结合 `before` 和 `after` 伪元素,可以将图标整合到设计中。 8. **安全考虑**:密码输入框通常使用 `type="password"` 隐藏输入内容,保护用户隐私。还可以使用CSS来...