模糊效果
来源:互联网 发布:万网域名如何备案 编辑:程序博客网 时间:2024/04/29 07:53
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initUI()">
<mx:Script>
<![CDATA[
private var handlerEnd:Boolean=true;//标示变量,是否处于动画的结束事件
private var isReverse:Boolean=false;//记录当前的播放状态
private function initUI():void{
//blur_effect.targets=[myPanel];//[]是数组的快捷定义方式,[myPanel]表示数组中只有一个元素,既是mypanel
/*还可以这样写
private var array:Array=new Array();
array.push("myPanel");
blur_effect.targets=array;
*/
glow_effect.target=myPanel;
blur_effect.target=myPanel;
}
//开始播放动画
private function startBlur():void{
handlerEnd=true;//handlerEnd为true,当播放结束时处理结束事件
blur_effect.play();
glow_effect.play();
}
//结束播放
private function stopBlur():void{
handlerEnd=false;//不再处理结束事件,必须在end之前修改 handlerEnd为false,否则end方法还将激活effectEnd事年,造成死循环
blur_effect.end();
btnPause.label="暂停";
//第一种消除滤镜的方法
//myPanel.filters=[];
//[]代表一个空的数组,被指为filters的值,它起到将myPanel的滤镜全部清除,写这步的目的是为了实现点stop后,不再有模糊效果。
//filters属性代表目标对象当前使用的滤镜的集合,它是所有可视化对象的公有属性,以数组的形式储存了自身所有的滤镜数据
//如果对象使用了其它滤镜,希望保存下来,方法是:先获得对象的滤镜列表,然后对这个列表地行循环判断,如果是想删除的滤镜,则删除
//第二种消除滤镜的做法:
var tempArray:Array=myPanel.filters;//先建立一个中间变量存放当前的滤镜数据
for(var i:uint=0;i<tempArray.length;i++){
if(tempArray[i] is BlurFilter){//判断是否是模糊滤镜
tempArray.splice(i,1);//splice(i,i) i表示要删除元素的开始点,1表示要删除的个数
i=i-1;//删除元素后必须将i减1,因为数组长度变小了,现在i位置变为原来的i+1位置的元素
}
}
myPanel.filters=tempArray;//将新的数据赋给对象,新的滤镜生效
}
private function pauseBlur():void{
if(!blur_effect.isPlaying){ //判断是否处于正在播放状态,如果不是,则暂停失效
return;
}
if(btnPause.label=="暂停"){
btnPause.label="继续";
blur_effect.pause();
}else{
btnPause.label="暂停";
blur_effect.resume();
}
}
private function endBlur():void{
if(handlerEnd){//用标示变量,判断是否当前已停止播放,如果没有停止,则反向播放
//切换播放方向,实现播放的无缝连接
isReverse=!isReverse;
blur_effect.play(null,isReverse);
//play()方法的第一个参数表示止标对像,因为先前已指定了目标,所以这里可以省略,用null代替。
//第二个参数表示播放方向,如果为true,则逆向播放,为false正向播放
}
}
]]>
</mx:Script>
<!-- Blur对像一般有四个重要的属性,依次是blurXFrom, blurXTo,blurYFrom,blurYTo.这些属性指定了始末位置的模糊距离。 -->
<!-- effectEnd="endBlur()"监听了effectEnd事件,是为了实现动画的首尾无缝连接播放 -->
<mx:Blur id="blur_effect" effectEnd="endBlur()" blurXFrom="0" blurXTo="30" blurYFrom="0" blurYTo="30" duration="1500"></mx:Blur>
<mx:Glow id="glow_effect" alphaFrom="1.0" alphaTo="0.3" blurXFrom="0.0" blurXTo="30.0" blurYFrom="0.0" blurYTo="30.0" color="0x6633ff"></mx:Glow>
<!-- -->
<mx:Panel x="10" y="10" width="327" height="299" layout="absolute" id="myPanel" title="图片显示面板">
<mx:Image x="10" y="10" source="img/wang.jpg" width="111" height="163"/>
<mx:Label x="136" y="30" text="Label"/>
<mx:Button x="10" y="209" label="开始" id="btnPlay" click="startBlur()"/>
<mx:Button x="121" y="209" label="暂停" id="btnPause" click="pauseBlur()"/>
<mx:Button x="232" y="209" label="停止" id="btnStop" click="stopBlur()"/>
</mx:Panel>
</mx:Application>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initUI()">
<mx:Script>
<![CDATA[
private var handlerEnd:Boolean=true;//标示变量,是否处于动画的结束事件
private var isReverse:Boolean=false;//记录当前的播放状态
private function initUI():void{
//blur_effect.targets=[myPanel];//[]是数组的快捷定义方式,[myPanel]表示数组中只有一个元素,既是mypanel
/*还可以这样写
private var array:Array=new Array();
array.push("myPanel");
blur_effect.targets=array;
*/
glow_effect.target=myPanel;
blur_effect.target=myPanel;
}
//开始播放动画
private function startBlur():void{
handlerEnd=true;//handlerEnd为true,当播放结束时处理结束事件
blur_effect.play();
glow_effect.play();
}
//结束播放
private function stopBlur():void{
handlerEnd=false;//不再处理结束事件,必须在end之前修改 handlerEnd为false,否则end方法还将激活effectEnd事年,造成死循环
blur_effect.end();
btnPause.label="暂停";
//第一种消除滤镜的方法
//myPanel.filters=[];
//[]代表一个空的数组,被指为filters的值,它起到将myPanel的滤镜全部清除,写这步的目的是为了实现点stop后,不再有模糊效果。
//filters属性代表目标对象当前使用的滤镜的集合,它是所有可视化对象的公有属性,以数组的形式储存了自身所有的滤镜数据
//如果对象使用了其它滤镜,希望保存下来,方法是:先获得对象的滤镜列表,然后对这个列表地行循环判断,如果是想删除的滤镜,则删除
//第二种消除滤镜的做法:
var tempArray:Array=myPanel.filters;//先建立一个中间变量存放当前的滤镜数据
for(var i:uint=0;i<tempArray.length;i++){
if(tempArray[i] is BlurFilter){//判断是否是模糊滤镜
tempArray.splice(i,1);//splice(i,i) i表示要删除元素的开始点,1表示要删除的个数
i=i-1;//删除元素后必须将i减1,因为数组长度变小了,现在i位置变为原来的i+1位置的元素
}
}
myPanel.filters=tempArray;//将新的数据赋给对象,新的滤镜生效
}
private function pauseBlur():void{
if(!blur_effect.isPlaying){ //判断是否处于正在播放状态,如果不是,则暂停失效
return;
}
if(btnPause.label=="暂停"){
btnPause.label="继续";
blur_effect.pause();
}else{
btnPause.label="暂停";
blur_effect.resume();
}
}
private function endBlur():void{
if(handlerEnd){//用标示变量,判断是否当前已停止播放,如果没有停止,则反向播放
//切换播放方向,实现播放的无缝连接
isReverse=!isReverse;
blur_effect.play(null,isReverse);
//play()方法的第一个参数表示止标对像,因为先前已指定了目标,所以这里可以省略,用null代替。
//第二个参数表示播放方向,如果为true,则逆向播放,为false正向播放
}
}
]]>
</mx:Script>
<!-- Blur对像一般有四个重要的属性,依次是blurXFrom, blurXTo,blurYFrom,blurYTo.这些属性指定了始末位置的模糊距离。 -->
<!-- effectEnd="endBlur()"监听了effectEnd事件,是为了实现动画的首尾无缝连接播放 -->
<mx:Blur id="blur_effect" effectEnd="endBlur()" blurXFrom="0" blurXTo="30" blurYFrom="0" blurYTo="30" duration="1500"></mx:Blur>
<mx:Glow id="glow_effect" alphaFrom="1.0" alphaTo="0.3" blurXFrom="0.0" blurXTo="30.0" blurYFrom="0.0" blurYTo="30.0" color="0x6633ff"></mx:Glow>
<!-- -->
<mx:Panel x="10" y="10" width="327" height="299" layout="absolute" id="myPanel" title="图片显示面板">
<mx:Image x="10" y="10" source="img/wang.jpg" width="111" height="163"/>
<mx:Label x="136" y="30" text="Label"/>
<mx:Button x="10" y="209" label="开始" id="btnPlay" click="startBlur()"/>
<mx:Button x="121" y="209" label="暂停" id="btnPause" click="pauseBlur()"/>
<mx:Button x="232" y="209" label="停止" id="btnStop" click="stopBlur()"/>
</mx:Panel>
</mx:Application>
- 模糊效果
- Android模糊效果 毛玻璃效果
- 缓冲模糊效果
- 径向模糊效果
- 径向模糊效果
- 径向模糊效果
- iOS中的模糊效果
- iOS中的模糊效果
- iOS图片模糊效果
- CSS3图片模糊效果
- html 实现模糊效果
- 图片模糊效果
- Android模糊效果总结
- iOS实现模糊效果
- Android中的模糊效果
- iOS模糊效果
- iOS中的模糊效果
- [UnityShader3]模糊效果
- ACE Proactor模式的一个问题
- ACE Proactor 框架移植到Linux平台后无法响应events
- Web2.0的企业变革
- Castle 配置
- 高效的 ACE Proactor框架
- 模糊效果
- 设计模式之State(状态)
- .NET Compact FrameWork 下的WebBrowser 获取他的IHtmlDocument接口
- tomcat services
- C#中判断字符是否为中文
- 篆书印章文字 谁能识别是什么字?
- 获取数据库信息
- [转]CSocket 和CAsyncSocket类介绍
- 交往, 帮助他人, 知识积累, 心理素质, 大胆去做