スポンサーサイト
2009.01.10 | |
ActionScript勉強中。
移動するムービークリップの残像を表示してみました。
ステージ内でマウスを動かすと残像を残しながら物体が移動します。
やってるコトは単純で、onEnterFrameでだんだん透明になるムービークリップを作ってるダケです。
ムービークリップ本体は、ばねっぽくイージングしてマウスカーソル(非表示ですが)を追いかけます。が非表示です。
onEnterFrameで、本体をduplicateMovieClipして残像を作り、ソイツのonEnterFrameでアルファ値を変化させてます。そんで、ある程度以上透明になったら残像をremoveMovieClipしてマス。
ActionScriptはこんなカンジです。
// 加速度jien_mcがマウスカーソルを追いかけるムービークリップ(ただし非表示)で、createAfterImageで本体をduplicateMovieClipして残像を作ってます。
var k:Number = 0.4;
// 減衰係数
var a:Number = 0.5;
// 透過係数
var t:Number = 0.6;
// 透過限界
var aLimit:Number = 10;
// スピード
jien_mc.speedX = 0;
jien_mc.speedY = 0;
// 本体は非表示
jien_mc._visible = false;
// マウスカーソル非表示
Mouse.hide();
// フレーム毎の処理
jien_mc.onEnterFrame = function() {
// 移動
this.speedX = k * (_xmouse - jien_mc._x) + a * this.speedX;
this.speedY = k * (_ymouse - jien_mc._y) + a * this.speedY;
this._x += this.speedX;
this._y += this.speedY;
// 残像
createAfterImage();
}
// 残像を作成します。
function createAfterImage() {
// 本体をコピーする
var depth:Number = _root.getNextHighestDepth();
var afterImage_mc:MovieClip
= jien_mc.duplicateMovieClip("afterImage_" + depth, depth);
// フレーム毎にアルファ値を低くする
afterImage_mc.onEnterFrame = function () {
this._alpha *= t;
// アルファ値が透過限界以下になったら消滅
if (this._alpha <= aLimit) {
this.removeMovieClip();
}
}
}
2007.03.29 | | Comments(2) | Trackback(0) | Flash/ActionScript
はじめまして。
オレも他の方のを見たりしつつ勉強中ですー。
このブログに書いてあるのが手本になるかというと自信ないですが、お役に立てばサイワイです。
2007-03-29 木 15:45:10 | URL | HundredthMonkey #ZJmJft5I [ 編集]
このコメントは管理人のみ閲覧できます
2007-09-03 月 14:54:59 | | # [ 編集]
« | HOME | »
Author:HundredthMonkey
プログラマ。