免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
Board logo

標題: 點擊畫面出現漣漪 [打印本頁]

作者: 餓狼    時間: 2013-7-21 17:06     標題: 點擊畫面出現漣漪

Matrix類跟BitmapData類可以打造很多酷的效果。比如攝像頭讀取數據等都會用到這個。這裡,構建一個超酷逼真的水波效果。用的時候,這裡建議一下大家:在一般情況下,不要用這個類。因為這個類比較佔計算機CPU資源。只是如果純粹為了效果較酷。還是可以推荐一下。 OK,先look一眼。請用鼠標在上面拖動,即可看效果。

下面,看看製作過程。



作者: 餓狼    時間: 2013-7-21 17:07

1、首先,設置幀頻。這裡可以設置大一些,為了流暢性。當然,不要過於大了。過於大了,反而會略顯不自然。


作者: 餓狼    時間: 2013-7-21 17:08

2、先導入一張准備用作水波背景的圖片,這裡我用的是我的個人照片。呵呵...大家可以換一下。
[attach]599[/attach]

作者: 餓狼    時間: 2013-7-21 17:10

3、然後添加上鍊接標識符"my_taoshaw_photo"。這裡,主要為了主場景中AS代碼的調用。


作者: 餓狼    時間: 2013-7-21 17:11

當然,也可以直接在庫中,對元件擊右鍵。選“鏈接”。然後在裡面輸入。
[attach]602[/attach]
[attach]601[/attach]

作者: 餓狼    時間: 2013-7-21 17:13

4、在主場景中AS幀中添加代碼。
[attach]603[/attach]
  1. //================版权声明开始================//
  2. //★淘沙网:http://www.taoshaw.com
  3. //★淘沙网所有教程欢迎转载。不过请转载时注明出处。谢谢合作。
  4. //================版权声明结束================//
  5. //导入BitmapData类
  6. import flash.display.BitmapData;
  7. //导入Matrix类
  8. import flash.geom.Matrix;
  9. var my_Bitmapdata1:BitmapData = new BitmapData(128, 128, false, 128);
  10. var my_Bitmapdata2 = new BitmapData(128, 128, false, 128);
  11. var my_Bitmapdata3 = new BitmapData(256, 256, false, 128);
  12. var my_Bitmapdata4 = new BitmapData(128, 128, false, 128);
  13. var my_Bitmapdata5 = new BitmapData(128, 128, false, 128);
  14. var my_Bitmapdata_out = new BitmapData(256, 256, true, 128);
  15. //在此处设置加载图片位置
  16. var my_taoshaw_photo = BitmapData.loadBitmap("my_taoshaw_photo");
  17. var bounds = new flash.geom.Rectangle(0, 0, 128, 128);
  18. var origin = new flash.geom.Point();
  19. var matrix:Matrix = new Matrix();
  20. var matrix2 = new flash.geom.Matrix();
  21. matrix2.a = matrix2.d=2;
  22. var wave = new flash.filters.ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9, 0);
  23. var damp = new flash.geom.ColorTransform(0, 0, 9.960937E-001, 1, 0, 0, 2, 0);
  24. var water = new flash.filters.DisplacementMapFilter(my_Bitmapdata3, origin, 4, 4, 48, 48, "ignore");
  25. attachBitmap(my_Bitmapdata_out, 0);
  26. var ms = getTimer();
  27. var frame = 0;
  28. var mouseDown = false;
  29. onMouseDown = function () {
  30. mouseDown = true;
  31. };
  32. onMouseUp = function () {
  33. onEnterFrame();
  34. mouseDown = false;
  35. };
  36. onEnterFrame = function () {
  37. if (mouseDown) {
  38.   var _loc2 = _xmouse/2;
  39.   var _loc1 = _ymouse/2;
  40.   my_Bitmapdata4.setPixel(_loc2+1, _loc1, 16777215);
  41.   my_Bitmapdata4.setPixel(_loc2-1, _loc1, 16777215);
  42.   my_Bitmapdata4.setPixel(_loc2, _loc1+1, 16777215);
  43.   my_Bitmapdata4.setPixel(_loc2, _loc1-1, 16777215);
  44.   my_Bitmapdata4.setPixel(_loc2, _loc1, 16777215);
  45. }
  46. my_Bitmapdata2.applyFilter(my_Bitmapdata4, bounds, origin, wave);
  47. my_Bitmapdata2.draw(my_Bitmapdata2, matrix, null, "add");
  48. my_Bitmapdata2.draw(my_Bitmapdata5, matrix, null, "difference");
  49. my_Bitmapdata2.draw(my_Bitmapdata2, matrix, damp);
  50. my_Bitmapdata3.draw(my_Bitmapdata2, matrix2, null, null, null, true);
  51. my_Bitmapdata_out.applyFilter(my_taoshaw_photo, new flash.geom.Rectangle(0, 0, 256, 256), origin, water);
  52. my_Bitmapdata5 = my_Bitmapdata4;
  53. my_Bitmapdata4 = my_Bitmapdata2.clone();
  54. };
  55. //创建新右键菜单
  56. myMenu = new ContextMenu();
  57. //隐藏右键菜单
  58. myMenu.hideBuiltInItems();
  59. myMenu.customItems.push(new ContextMenuItem("淘沙网:http://www.taoshaw.com", PR));
  60. function PR(obj, item) {
  61. getURL("http://www.taoshaw.com", "_blank");
  62. }
  63. //将新菜单赋予给场景
  64. _root.menu = myMenu;
複製代碼





歡迎光臨 多姿多采 創作與製圖論壇 (http://colorful.joinbbs.net/) Powered by Discuz! 7.2