最近,做了个小部件,但是被一些小问题纠缠不清,现在拿出来与大家分享。
先看源代码:
<mx:Parallel id="pe">
<mx:Fade id="fe" alphaFrom="0" alphaTo="0.8" duration="600" />
<mx:Blur id="be" blurXFrom="50" blurXTo="0" blurYFrom="50" blurYTo="0" duration="600" />
</mx:Parallel>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.EffectEvent;
import flash.events.MouseEvent;
[Bindable]
[Embed(source="1.jpg")]
private var imgClass1:Class;
[Bindable]
[Embed(source="2.jpg")]
private var imgClass2:Class;
[Bindable]
[Embed(source="3.jpg")]
private var imgClass3:Class;
[Bindable]
[Embed(source="4.jpg")]
private var imgClass4:Class;
[Bindable]
[Embed(source="5.jpg")]
private var imgClass5:Class;
[Bindable]
[Embed(source="6.jpg")]
private var imgClass6:Class;
private var imgArray:ArrayCollection;
private var t:Timer = new Timer(3000);
private var index:int = 0;
public function init():void{
imgArray = new ArrayCollection();
imgArray.addItem(imgClass1);
imgArray.addItem(imgClass2);
imgArray.addItem(imgClass3);
imgArray.addItem(imgClass4);
imgArray.addItem(imgClass5);
imgArray.addItem(imgClass6);
img.scaleX = 2;
img.scaleY = 1;
img.source = imgArray[index] as Class;
img.addEventListener(MouseEvent.ROLL_OVER,stopPlay);
img.addEventListener(MouseEvent.ROLL_OUT,countinuePlay);
t.addEventListener(TimerEvent.TIMER,autoPlay);
t.start();
}
public function completeEvent(event:Event):void {
Bitmap(event.target.content).smoothing = true;
img.content.width = thumbnailContainer.width;
img.content.height = thumbnailContainer.height;
}
//每次完成载入,就对图片进行重新的大小定义
public function autoPlay(event:TimerEvent):void{
index++;
if(index > imgArray.length - 1) index=0;
img.source = imgArray[index];
}
public function stopPlay(event:MouseEvent):void{
t.stop();
}
public function countinuePlay(event:MouseEvent):void{
t.start();
}
public function remove(event:EffectEvent):void{
event.effectInstance.reverse();
event.effectInstance.play();
}
]]>
</mx:Script>
<mx:Canvas id="thumbnailContainer" width="529" height="191" y="0" x="0">
<mx:Image width="100%" height="100%" id="img" completeEffect="pe"
maintainAspectRatio="false" scaleContent="true"
complete="completeEvent(event)" x="0" y="0"/>
</mx:Canvas>
Flex image组件中有一个scaleContent属性,可使载入的图片按比例放大缩小,当然也可以使用scaleX与scaleY属性来定义,但是放大缩小的比例就很难自定义了,以上的脚本就实现了图片与外面容器大小相当的填充效果。
分享到:
相关推荐
当图片的原始宽高比例与Image组件设定的宽高比例不一致时,为了保持图像的原始比例,会自动填充或留出空白区域。例如,如果一个16:9比例的图片被放入一个4:3的Image组件中,图像将按比例缩放,使得宽度适应4,高度为...
### 使用JavaScript实现网页背景图片自动拉伸的知识点 在网页设计与开发的过程中,经常会遇到需要对背景图片进行自适应处理的情况。特别是在响应式设计日益普及的今天,如何让背景图片根据不同的屏幕尺寸自动拉伸变...
- `align-items`用于控制交叉轴上的项目对齐,类似地,有`flex-start`、`flex-end`、`center`、`baseline`(基线对齐)和`stretch`(拉伸至填满交叉轴)。 - 单独的项目可以通过`align-self`覆盖`align-items`的...
4. **实际应用**:在给定的“仿QQ空间图片拉伸效果”中,包含了4个不同的demo。每个demo可能使用了上述方法中的某一种或多种,通过查看和分析代码,我们可以学习到不同实现方式的优缺点,以及在特定场景下如何选择...
- **媒体文件浏览**:了解如何在应用程序中浏览和加载媒体文件,如图片和音频文件。 - **SQLite数据库操作**:掌握如何创建和写入SQLite数据库,这对于需要持久化存储数据的应用程序来说是必不可少的技能。 #### 五...
等比缩放确保了图片在不同尺寸的屏幕或窗口中保持其原始的比例,避免出现图像拉伸或压缩导致失真的情况。本话题主要探讨如何实现图片等比缩放,并兼容主流浏览器。 首先,我们需要理解等比缩放的概念。等比缩放意味...
通过设置容器的`display: flex`属性,并配合`align-items: stretch`,可以让子元素(图片)自动拉伸至与最长的子元素等高。 2. **Grid Layout**:CSS Grid布局也是另一种强大的布局工具,可以方便地创建复杂的二维...
CSS的`float`属性常用于实现图文混排,`margin`和`padding`则能调整图片与其他元素的间距。`display`属性如`inline-block`和`flex`在布局中也有重要作用。例如: ```css img { float: left; margin-right: 10px; ...
同时,`<a>`标签用于链接跳转,`<img>`用于展示图片,`<video>`则用于嵌入视频内容,这些都是首页常见元素。 其次,CSS(Cascading Style Sheets)是用于控制网页样式的语言。在本项目中,Less作为CSS的预处理器,...
通过设置`display: flex`和`align-items: stretch`,我们可以使同一行的子元素自动拉伸到相同高度。 2. **CSS Grid**: CSS Grid布局允许创建二维网格系统,其中每个单元格可以独立调整大小。使用`grid-template-...
通过设置容器的`display: flex`和`align-items: stretch`,所有子元素将自动拉伸至与最高的子元素相同的高度。 ```css .container { display: flex; } .column { flex: 1; } ``` 3. **CSS Grid**: CSS Grid...
让图片自动适应DIV容器大小 .parent-div { width: 500px; height: 400px; display: flex; align-items: center; justify-content: center; /* border: 1px solid black; /* 为了效果明显,可以打开此边框 ...
- `align-items`:在交叉轴上对齐项目,同样有`flex-start`、`flex-end`、`center`、`baseline`和`stretch`(默认,拉伸至满容器)。 - `align-content`:当有多行Flex项目时,在交叉轴上对齐行,适用于多行布局,...
根据提供的文件信息,“Styling and Skinning.pdf”主要讲解了Adobe Flex框架下的界面定制与换肤技术。下面将从以下几个方面进行深入解析: ### 一、Styling vs. Skinning #### Styling(样式定制) - **定义**:...
使用`max-width: 100%`和`height: auto`可以让图片在任何设备上保持其原始宽高比缩放,避免出现拉伸或挤压的情况。同时,可以利用srcset和sizes属性提供不同分辨率的图片,根据设备特性加载合适的资源。 8. 媒体...
- 使用Flexbox布局,可以通过设置`display: flex`和`flex-wrap: wrap`来创建一个容器,使得子元素可以在一行内排列,当行满时自动换行。 - 使用`align-items: stretch`确保元素在垂直方向上拉伸填充整个容器。 - ...
设置`flex: none`意味着该元素不会拉伸或缩小,而是保持其原始大小。这在内容过多时,能确保内容不会被裁剪,但当内容较少时,整个布局不会居中。 3. **不设置`flex`属性**: 对于内容不固定的元素,可以不设置`...
定义弹性项目沿侧轴的对齐方式,与`justify-content`类似,可选值包括`flex-start`、`flex-end`、`center`、`baseline`(基线对齐)和`stretch`(拉伸填满)。 #### (d) `align-content` 当有多行(多列)的弹性...
在实际开发过程中,需要注意的是`webkit-box`仅支持旧版Webkit浏览器,为了实现更好的兼容性,应当同时使用`flex`布局,并借助Autoprefixer等工具自动添加必要的浏览器前缀,确保在现代浏览器中也能正常工作。...