Flash制作紅外線引導導彈爆炸視覺效果_Flash教程
推薦:Flash問答:一個簡單的字母順序變化效果問:我設定一個動態文本框var=zimu,我想讓它不停的按順序顯示A-Z26個字母,然后當顯示到指定T時,則停止下來。這個效果用AS怎么寫啊?(終極討厭)答:
前幾天的一篇文章,用Flash輕松制作電子發散視覺效果動畫好多人都問有什么用?今天就再繼續一下!看看紅外線引導導彈爆炸效果。
爆炸的代碼我們還使用前面那個教程中用到的代碼,在這個效果里,我們首先把光標的外形變換一下,然后點鼠標就有一個導彈出現,然后發生爆炸。
先看效果:(點擊鼠標可以看到效果)
新建立一個文件,按Ctrl J調整大小和背景色(#999999)和幀頻。

然后制作一個紅色的小圓影片剪輯作為鼠標的外形,制作一條有色的線條影片剪輯作為導彈,然后再制作一個白色小圓作為爆炸的影片剪輯。
然后在第一幀加入如下代碼。
/* GLOBAL VARIABLES */
_global.gLEFT = 20;
_global.gTOP = 20;
_global.gRIGHT = Stage.width - 20;
_global.gBOTTOM = Stage.height - 20;
/* FUNCTION: Converts radians to degrees */
function rad2deg(radians:Number):Number {
return radians * 180 / Math.PI;
}
/* FUNCTION: Converts degrees to radians */
function deg2rad(degrees:Number):Number {
return degrees * Math.PI / 180;
}
/* FUNCTION: Returns a random number between min and max (inclusive) */
function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random() * (max - min 1)) min;
return randomNum;
}
/* FUNCTION: Creates an explosion */
explosion.maxSpeed = 25;
explosion.minSize = 4;
explosion.maxSize = 10;
explosion.minFragments = 10;
explosion.maxFragments = 50;
function explosion(originX:Number, originY:Number):Void {
var totalFragments:Number = randRange(explosion.minFragments, explosion.maxFragments);
var fragment_mc:MovieClip;
var depth:Number = this.getNextHighestDepth();
for (var i:Number = 0; i < totalFragments; i , depth ) {
fragment_mc = attachMovie("Fragment", "fragment" depth, depth);
fragment_mc._x = originX;
fragment_mc._y = originY;
fragment_mc._width = fragment_mc._height = randRange(explosion.minSize, explosion.maxSize);
while (!fragment_mc.speedX) {
fragment_mc.speedX = randRange(-explosion.maxSpeed, explosion.maxSpeed);
}
while (!fragment_mc.speedY) {
fragment_mc.speedY = randRange(-explosion.maxSpeed, explosion.maxSpeed);
}
fragment_mc._alpha = randRange(10, 100);
fragment_mc.cacheAsBitmap = true;
fragment_mc.onEnterFrame = function():Void {
this._x = this.speedX;
this._y = this.speedY;
if (this._x < gLEFT || this._x > gRIGHT || this._y < gTOP || this._y > gBOTTOM) {
this.removeMovieClip();
}
};
}
}
/* FUNCTION: Creates and initializes heat-seeking missiles */
createMissile.maxSpeed = 30;
createMissile.accel = 2;
function createMissile(target_mc:MovieClip, xPos:Number, yPos:Number):Void {
var depth:Number = _root.getNextHighestDepth();
var missile_mc:MovieClip = attachMovie("Missile", "missile" depth, depth);
missile_mc._x = xPos;
missile_mc._y = yPos;
missile_mc.speed = 0;
missile_mc.setRotation = function():Void {
var dy:Number = target_mc._y - this._y;
var dx:Number = target_mc._x - this._x;
this._rotation = rad2deg(Math.atan2(dy, dx));
};
missile_mc.onEnterFrame = function():Void {
this.setRotation();
if (this.speed < createMissile.maxSpeed) {
this.speed = createMissile.accel;
}
this._x = Math.cos(deg2rad(this._rotation)) * this.speed;
this._y = Math.sin(deg2rad(this._rotation)) * this.speed;
if (this.hitTest(target_mc)) {
explosion(target_mc._x, target_mc._y);
this.removeMovieClip();
}
};
}
/* MAIN PROGRAM LOGIC */
var gameBG_mc:MovieClip = _root.createEmptyMovieClip("gameBG", 0);
gameBG_mc.beginFill(0x222222);
gameBG_mc.moveTo(gLEFT, gTOP);
gameBG_mc.lineTo(gRIGHT, gTOP);
gameBG_mc.lineTo(gRIGHT, gBOTTOM);
gameBG_mc.lineTo(gLEFT, gBOTTOM);
gameBG_mc.endFill(gLEFT, gTOP);
var target_mc:MovieClip = attachMovie("Target", "target", _root.getNextHighestDepth());
var startX:Number = (gRIGHT - gLEFT) / 2 gLEFT;
var startY:Number = (gBOTTOM - gTOP) / 2 gTOP;
startDrag(target_mc, true);
Mouse.hide();
onMouseDown = function():Void {
createMissile(target_mc, startX, startY);
};
分享:用Flash模擬制作簡單的3D視覺特效用Flash簡單模擬制作一個旋轉的3D效果的指環特效動畫,新手入門教程,高手就別看了!先看效果:點擊這里下載源文件本教程不涉及ActionScript,適合新手入門
- 相關鏈接:
- 教程說明:
Flash教程-Flash制作紅外線引導導彈爆炸視覺效果
。