Flash AS3制作鼠標跟隨噴槍涂鴉效果(2)_Flash教程
推薦:Flash as入門:文本與字符串本例繼續(xù)講解AS的基礎知識,今天講解的是AS入門第六課文本與字符。 文本與字符串 在制作flash動畫時,常常會用到文本和字符串,首先來看看文本. 一 創(chuàng)建文本框 在創(chuàng)作環(huán)境中創(chuàng)建文本
11.打開動作面板輸入下列代碼:
/*我們需要創(chuàng)建一個BitmapData對象以便以一個像素圖形對象工作。我們希望wallCanvas一開始時是透明的,這就是為什么我們用0x00ffffff值作參數(shù)。*/
var wallCanvas:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight - 100,true, 0x00ffffff);
//創(chuàng)建一個歸類于 BitmapData對象的位圖對象。
var bitmap:Bitmap = new Bitmap(wallCanvas);
//在舞臺上添加一個位圖
addChild (bitmap);
//監(jiān)聽墻上的鼠標點下事件
drawingArea.addEventListener (MouseEvent.MOUSE_DOWN, mouseDownHandler);
//監(jiān)聽整個舞臺上的鼠標放開事件
stage.addEventListener (MouseEvent.MOUSE_UP, mouseUpHandler);
//噴槍的顏色
var color:uint;
//噴槍的最大半徑
var maxRadius:Number;
//噴槍的密度
var density:Number;
//當鼠標在墻上點下時調用
function mouseDownHandler (event:MouseEvent):void {
//增加EVENT_FRAME 這樣我們可以在每一幀繪制
addEventListener (Event.ENTER_FRAME, onEnterFrame);
}
//當鼠標放開時調用
function mouseUpHandler (event:MouseEvent):void {
//如果鼠標放開時(沒有繪制),我們就不需要EVENT_FRAME了
removeEventListener (Event.ENTER_FRAME, onEnterFrame);
}
//這個函數(shù)負責整個繪制過程
function onEnterFrame (event:Event):void {
//從sizeSlider中獲得尺寸
maxRadius = sizeSlider.value;
/*從myColorPicker.中獲得顏色,當我們繪制時(我們循環(huán)繪制像素)我們使用0xff000000創(chuàng)建像素的顏色。*/
color = myColorPicker.selectedColor 0xff000000;
//從densitySlider中獲得密度
density = densitySlider.value;
/*這個密度定義了我們循環(huán)了多少次,換言之,在每一幀繪制了多少像素*/
for (var i:int = 0; i < density; i ) {
//計算一個隨機角度
var angle:Number = Math.random() * Math.PI * 2;
//計算一個被畫的像素的隨機半徑
var radius:Number = Math.random() * maxRadius;
//計算x和y的位置
var xPos:Number = mouseX Math.cos(angle) * radius;
var yPos:Number = mouseY Math.sin(angle) * radius;
//畫像素
wallCanvas.setPixel32 (xPos, yPos, color);
}
}
你已經完成了,如果有什么問題,請訪問論壇。快樂的一天!
下面給出本例的代碼,朋友們可以研究下var wallCanvas:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight - 100,true, 0x00ffffff);
var bitmap:Bitmap = new Bitmap(wallCanvas);
addChild (bitmap);
drawingArea.addEventListener (MouseEvent.MOUSE_DOWN, mouseDownHandler);
stage.addEventListener (MouseEvent.MOUSE_UP, mouseUpHandler);
var color:uint;
var maxRadius:Number;
var density:Number;
function mouseDownHandler (event:MouseEvent):void {
addEventListener (Event.ENTER_FRAME, onEnterFrame);
}
function mouseUpHandler (event:MouseEvent):void {
removeEventListener (Event.ENTER_FRAME, onEnterFrame);
}
function onEnterFrame (event:Event):void {
maxRadius = sizeSlider.value;
color = myColorPicker.selectedColor 0xff000000;
density = densitySlider.value;
for (var i:int = 0; i < density; i ) {
var angle:Number = Math.random() * Math.PI * 2;
var radius:Number = Math.random() * maxRadius;
var xPos:Number = mouseX Math.cos(angle) * radius;
var yPos:Number = mouseY Math.sin(angle) * radius;
wallCanvas.setPixel32 (xPos, yPos, color);
}
}
分享:Flash教程:用AS3代碼制作躲避碰撞的盒子簡介:本例介紹運用Flash的AS3代碼制作躲避碰撞的盒子效果,譯者詳細解釋了代碼的運用,喜歡本效果的朋友可以到論壇提交作業(yè)~~ 效果演示:(請用鼠標點擊小球觀看效果) 在這個Actions
- 相關鏈接:
- 教程說明:
Flash教程-Flash AS3制作鼠標跟隨噴槍涂鴉效果(2)。