Bitmap特效,被风吹散效果
- 格式:doc
- 大小:66.00 KB
- 文档页数:15
Bitmap特效,被风吹散效果。 详细代码: 1. package 2. 3. { 4. 5. import flash.display.Bitmap; 6. 7. import flash.display.BitmapData; 8. 9. import flash.display.MovieClip; 10. 11. import flash.display.Sprite; 12. 13. import flash.events.Event; 14. 15. import flash.filters.BlurFilter; 16. 17. import flash.geom.Point; 18. 19. import flash.geom.Rectangle; 20. 21. 22. 23. /** 24. 25. * ... 26. 27. * @author flashk 28. 29. */ 30. 31. public class Min extends Sprite 32. 33. { 34. 35. public var a_mc:MovieClip; 36. 37. 38. 39. private var bd:BitmapData; 40. 41. private var bds:BitmapData; 42. 43. private var ps:Array; 44. 45. 46. 47. public function Min() { 48. 49. bd = new BitmapData(1420, 300, true); 50. 51. bds = new BitmapData(a_mc.width, a_mc.height, true); 52. 53. bds.draw(a_mc); 54. 55. var bp:Bitmap = new Bitmap(); 56. 57. bp.bitmapData = bd; 58. 59. this.addChild(bp); 60. 61. start(); 62. 63. } 64. 65. private function start():void { 66. 67. ps = new Array(); 68. 69. for (var i:int = 1; i <= bds.width; i++) { 70. 71. for (var j:int = 1; j <= bds.height; j++) { 72. 73. ps.push(new Po(i, j, bds.getPixel32(i, j),bds.width)); 74. 75. } 76. 77. } 78. 79. this.addEventListener(Event.ENTER_FRAME, render); 80. 81. this.removeChild(a_mc); 82. 83. } 84. 85. private function render(event:Event):void { 86. 87. var po; 88. 89. //bd.fillRect(new Rectangle(0, 0, bd.width, bd.height), 0); 90. 91. bd.applyFilter(bd, new Rectangle(0, 0, bd.width, bd.height), new Point(0, 0), new BlurFilter(2, 2, 1)); 92. 93. bd.lock(); 94. 95. var len = ps.length; 96. 97. for (var i:int = 0 ; i < len; i+=1) { 98. 99. po = ps[i]; 100. 101. po.move(); 102. 103. bd.setPixel32(po.x, po.y+80, po.color); 104. 105. } 106. 107. bd.unlock(); 108. 109. } 110. 111. } 112. 113. 114. 115. } 116. 117. class Po { 118. 119. public var x:Number; 120. 121. public var y:Number; 122. 123. public var color:uint; 124. 125. private var speed:Number; 126. 127. private var r:Number = 0; 128. 129. private var by:Number; 130. 131. 132. 133. public function Po(x:Number, y:Number, color:uint,w:Number) { 134. 135. this.x = x; 136. 137. this.y = y; 138. 139. this.color = color; 140. 141. this.speed = Math.random() * 10 - (w - x) / 2; 142. 143. //r = Math.random() * 50; 144. 145. this.by = y; 146. 147. } 148. 149. public function move():void { 150. 151. speed += 0.5; 152. 153. if(speed>0){ 154. 155. this.x += speed; 156. 157. r += 10; 158. 159. this.y = this.by + Math.sin(r* Math.PI/180)*50; 160. 161. } 162. 163. } 164. 165. }
源文件和swf下载s2demo.rar: 再来玩个加鼠标控制的,美女被风吹散... 1. package 2. 3. { 4. 5. import flash.display.Bitmap; 6. 7. import flash.display.BitmapData; 8. 9. import flash.display.MovieClip; 10. 11. import flash.display.Sprite; 12. 13. import flash.events.Event; 14. 15. import flash.filters.BlurFilter; 16. 17. import flash.filters.ColorMatrixFilter; 18. 19. import flash.geom.ColorTransform; 20. 21. import flash.geom.Point; 22. 23. import flash.geom.Rectangle; 24. 25. 26. 27. /** 28. 29. * ... 30. 31. * @author flashk 32. 33. */ 34. 35. public class Min extends Sprite 36. 37. { 38. 39. public var a_mc:MovieClip; 40. 41. 42. 43. private var bd:BitmapData; 44. 45. private var bds:BitmapData; 46. 47. private var ps:Array; 48. 49. private var ns:uint; 50. 51. private var checks:Array; 52. 53. private var noise:BitmapData; 54. 55. private var randomSeed:Number; 56. 57. private var image:BitmapData; 58. 59. private var rect:Rectangle; 60. 61. private var cTra:ColorTransform; 62. 63. private var vectorList:Array; 64. 65. private var num:uint = 10000; 66. 67. 68. 69. public function Min() { 70. 71. 72. 73. noise = new BitmapData(a_mc.width, a_mc.height, false, 0x000000); 74. 75. randomSeed = Math.floor(Math.random() * 0xFFFF); 76.