加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash制作水波,根据鼠标点击产生效果

发布时间:2020-12-15 18:05:37 所属栏目:百科 来源:网络整理
导读:打开后用在画面上单击鼠标,或按住鼠标左键不放在画面上划过就会出现圈圈涟漪和波纹,非常美丽,跟真的水面一样,非常漂亮。 一、设置舞台大小(256×256)。 二、导入图片到库。不要导入到舞台。 三、打开库设置图片链接。标识符为:surface。将“为运行时
打开后用在画面上单击鼠标,或按住鼠标左键不放在画面上划过就会出现圈圈涟漪和波纹,非常美丽,跟真的水面一样,非常漂亮。 
一、设置舞台大小(256×256)。 
二、导入图片到库。不要导入到舞台。 
三、打开库设置图片链接。标识符为:surface。将“为运行时导入”勾去掉,勾上“为actionscript 导出”和“在第一帧导出” 
四、在第一帧插入动作代码。 

var damper = new flash.display.BitmapData(128,128,false,128); 
var result = new flash.display.BitmapData(128,128); 
var result2 = new flash.display.BitmapData(256,256,128); 
var source = new flash.display.BitmapData(128,128); 
var buffer = new flash.display.BitmapData(128,128); 
var output = new flash.display.BitmapData(256,true,128); 
var surface = flash.display.BitmapData.loadBitmap("surface"); 
var bounds = new flash.geom.Rectangle(0,128); 
var origin = new flash.geom.Point(); 
var matrix = new flash.geom.Matrix(); 
var matrix2 = new flash.geom.Matrix(); 
matrix2.a = matrix2.d = 2; 
var wave = new flash.filters.ConvolutionFilter(3,3,[1,1,1],9,0); 
var damp = new flash.geom.ColorTransform(0,9.960937E-001,2,0); 
var water = new flash.filters.DisplacementMapFilter(result2,origin,4,48,"ignore"); 
attachBitmap(output,0); 
var ms = getTimer(); 
var frame = 0; 
var mouseDown = false; 
onMouseDown = function () 
{ 
mouseDown = true; 
}; 
onMouseUp = function () 
{ 
onEnterFrame(); 
mouseDown = false; 
}; 
onEnterFrame = function () 
{ 
if (mouseDown) 
{ 
var _loc2 = _xmouse / 2; 
var _loc1 = _ymouse / 2; 
source.setPixel(_loc2 + 1,_loc1,16777215); 
source.setPixel(_loc2 - 1,16777215); 
source.setPixel(_loc2,_loc1 + 1,_loc1 - 1,16777215); 
} // end if 
result.applyFilter(source,bounds,wave); 
result.draw(result,matrix,null,"add"); 
result.draw(buffer,"difference"); 
result.draw(result,damp); 
result2.draw(result,matrix2,true); 
output.applyFilter(surface,new flash.geom.Rectangle(0,256),water); 
buffer = source; 
source = result.clone(); 
}; 
五、测试看看。点击flash,会一出现圈圈涟漪,效果非常真实。 
還有就是這個.直接套用. 
var damper = new flash.display.BitmapData(128,128); 
var surface = flash.display.BitmapData.loadBitmap("bg1"); 
var bounds = new flash.geom.Rectangle(0,0); 
var ms = getTimer(); 
var frame = 0; 
var mouseDown = false; 
onMouseDown = function () 
{ 
    mouseDown = true; 
}; 
onMouseUp = function () 
{ 
    onEnterFrame(); 
    mouseDown = false; 
}; 
onEnterFrame = function () 
{ 
    if (mouseDown) 
    { 
        var _loc1 = _xmouse / 2; 
        var _loc2 = _ymouse / 2; 
        source.setPixel(_loc1 + 1,_loc2,16777215); 
        source.setPixel(_loc1 - 1,16777215); 
        source.setPixel(_loc1,_loc2 + 1,_loc2 - 1,16777215); 
    } // end if 
    result.applyFilter(source,wave); 
    result.draw(result,"add"); 
    result.draw(buffer,"difference"); 
    result.draw(result,damp); 
    result2.draw(result,true); 
    output.applyFilter(surface,water); 
    buffer = source; 
    source = result.clone(); 
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读