發表文章

目前顯示的是有「as2」標籤的文章

FDT3發佈了!

可能很多朋友都知道了,不過還是貼一下文比較好。 http://fdt.powerflasher.com/

AS2摸擬水中泡泡

在圖庫裡新增一個影片角色ball,然後設計好你需要的水泡形狀後, 在ball的時間軸影格上鍵入以下的code: var _targetx:Number = Math.random()*30-Math.random()*30; var _ymov:Number = Math.random()*3+1; this._x = Math.random()*100; this._xscale = this._yscale=Math.random()*300; this._alpha = Math.random()*80; var _vx:Number = 0; var k:Number = 0.01; function onEnterFrame() { this._y -= _ymov; _vx += (this._targetx-this._x)*k; this._x += _vx; if (this._y this._alpha = this._alpha-1; } if (this._alpha delete this.onEnterFrame; this.removeMovieClip(); } } 而後在圖庫中選其ball角色,按滑鼠右鍵,點選屬性。將匯出給action script使用打勾, 然後在識別名稱上打入ball_mc。 最後在場景時間軸上鍵入以下code: ball._x = 300; ball._y = 300; this.createEmptyMovieClip("ball",1) this.ball._x=Stage.width/2; this.ball._y=Stage.height; var Id1:Number = setInterval(ball_mov, 100); var i:Number = 0; function ball_mov() { ball.attachMovie("ball_mc", "ball_mc1", i); i++; if (i>500) { i = 0; } } 就可以看到泡泡的....以後有空再把這個弄成class會方便點。

AS2簡單的mouse互動class

先制作一個名為 movemouse 的class 程式碼如下: class followmouse { var _x, _y; function followmouse(x_mc, speed, _damp) { var tx = 0; var ty = 0; x_mc.onEnterFrame = function () { var _vx = (_xmouse - _x) * speed; var _vy = (_ymouse - _y) * speed; tx = tx + _vx; ty = ty + _vy; x_mc._x = x_mc._x + tx; x_mc._y = x_mc._y + ty; tx = tx * _damp; ty = ty * _damp; }; } } 然後在新建立的fla裡,建立一個實體名稱為ball_mc的影片角色, 在時間軸上下如下的語法 var ballmov:followmouse=new followmouse(ball_mc,0.1,0.9); ball_mc為場景上的影片名稱,0.1的位置為速度,0.9為摩擦力, 可以代入不同的數字來測試效果。

AS2的迴圈

for (i=0; i this.attachMovie("test_mc", "test"+i, i, {_y:i*50}); var contain:MovieClip = this["test"+i]; trace("目前:"+i); contain.onPress = function() { trace(i); }; } 這樣的語法似乎可行,但所有的test影片trace出來的結果都是10。 改用onEnterFrame後: for (i=0; i this.attachMovie("test_mc", "test"+i, i, {_y:i*50}); var contain:MovieClip = this["test"+i]; trace("目前:"+i); contain.onEnterFrame = function() { trace(i); delete this.onEnterFrame; }; } //trace 目前:0 目前:1 目前:2 目前:3 目前:4 目前:5 目前:6 目前:7 目前:8 目前:9 10 10 10 10 10 10 10 10 10 10 看來as2會先把迴圈執行完成後,才對MovieClip的事件方法下定義。 所以解決的方式必需為: for (i=0; i this.attachMovie("test_mc", "test"+i, i, {_y:i*50}); var contain:MovieClip = this["test"+i]; trace("目前:"+i); contain.i=i; contain.onEnterFrame = function() { trace(this) trace(this.i); delete this.onEnterFrame; }; } 但有意思的是trace出來後的結果是 目前:0 目前:1 目前:2 目前:3 目前:4 目前:5 目前:6 目前:7 目前:8 目前:9 _level0.te...