首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

[转]Flex 兑现可以拖动的毛玻璃效果

2012-12-18 
[转]Flex 实现可以拖动的毛玻璃效果http://www.jb51.net/article/20942.htm代码如下:此场景对应的类为: 复

[转]Flex 实现可以拖动的毛玻璃效果
http://www.jb51.net/article/20942.htm

代码如下:


此场景对应的类为:
复制代码 代码如下:

// ActionScript file
import flash.display.BitmapData; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.BlurFilter; import flash.geom.Matrix; import flash.geom.Point; import flash.geom.Rectangle; private var m_mouseDown : Boolean = false; private var m_offsetPt : Point; private function onCreationComplete(evt:Event) : void { onBoxRender(null); } private function onBoxRender(evt:Event) : void { if( ctlContainer.width > 0 && ctlContainer.height > 0 ) { var bmpData : BitmapData = new BitmapData( ctlContainer.width, ctlContainer.height, false); var matrix : Matrix = new Matrix(); // 对矩阵进行平移变换 matrix.translate( -1 * ctlBox.x, -1 * ctlBox.y); // 将背景填充到移动元件上来 bmpData.draw( ctlContainer , matrix , null , null , new Rectangle( 0, 0, ctlBox.width + 4, ctlBox.height + 4) // 裁剪区域 ); bmpData.applyFilter( bmpData , new Rectangle( 0, 0, bmpData.width, bmpData.height) , new Point( 0, 0) , new BlurFilter( 5, 5, 5) // BlurFilter的参数越大计算量越大 移动的时候越卡 ); ctlBox.graphics.beginBitmapFill(bmpData, null, false, false); ctlBox.graphics.drawRect( 0, 0, ctlBox.width, ctlBox.height); ctlBox.graphics.endFill(); } } private function onMouseDown(evt:MouseEvent) : void { m_mouseDown = true; m_offsetPt = new Point( ctlBox.mouseX, ctlBox.mouseY); } private function onMouseUp(evt:MouseEvent) : void { m_mouseDown = false; evt.updateAfterEvent(); } private function onMouseMove(evt:MouseEvent) : void { if( m_mouseDown ) { ctlBox.x = evt.stageX - m_offsetPt.x; ctlBox.y = evt.stageY - m_offsetPt.y; evt.updateAfterEvent(); } } // ActionScript file import flash.display.BitmapData; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.BlurFilter; import flash.geom.Matrix; import flash.geom.Point; import flash.geom.Rectangle; private var m_mouseDown : Boolean = false; private var m_offsetPt : Point; private function onCreationComplete(evt:Event) : void { onBoxRender(null); } private function onBoxRender(evt:Event) : void { if( ctlContainer.width > 0 && ctlContainer.height > 0 ) { var bmpData : BitmapData = new BitmapData( ctlContainer.width, ctlContainer.height, false); var matrix : Matrix = new Matrix(); // 对矩阵进行平移变换 matrix.translate( -1 * ctlBox.x, -1 * ctlBox.y); // 将背景填充到移动元件上来 bmpData.draw( ctlContainer , matrix , null , null , new Rectangle( 0, 0, ctlBox.width + 4, ctlBox.height + 4) // 裁剪区域 ); bmpData.applyFilter( bmpData , new Rectangle( 0, 0, bmpData.width, bmpData.height) , new Point( 0, 0) , new BlurFilter( 5, 5, 5) // BlurFilter的参数越大计算量越大 移动的时候越卡 ); ctlBox.graphics.beginBitmapFill(bmpData, null, false, false); ctlBox.graphics.drawRect( 0, 0, ctlBox.width, ctlBox.height); ctlBox.graphics.endFill(); } } private function onMouseDown(evt:MouseEvent) : void { m_mouseDown = true; m_offsetPt = new Point( ctlBox.mouseX, ctlBox.mouseY); } private function onMouseUp(evt:MouseEvent) : void { m_mouseDown = false; evt.updateAfterEvent(); } private function onMouseMove(evt:MouseEvent) : void { if( m_mouseDown ) { ctlBox.x = evt.stageX - m_offsetPt.x; ctlBox.y = evt.stageY - m_offsetPt.y; evt.updateAfterEvent(); } } 



热点排行