import flash.filters.GlowFilter;
var p:Array = new Array();
var row = 3;
var col = 5;
for (i=1; i<=15; i++) {
p[i] = attachMovie("s"+i, "p"+i, i);
p[i]._x = 70+120*((i-1)%col);
p[i]._y = 100+150*Math.floor((i-1)/col);
p[i].num = i;
p_filter(p[i],0xffcdff,15,15,2);
p[i].onRollOver = rollov;
p[i].onRollOut = rollot;
p[i].onRelease = loadImg;
}
function rollov() {
p_filter(p[this.num],0x99ffff,20,20,2);
}
function rollot() {
p_filter(p[this.num],0xffcdff,15,15,2);
}
function loadImg() {
p_visible(false);
var n = this.num;
var w = this._width;
var h = this._height;
load_mc = createEmptyMovieClip("load_mc", 100);
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.loadClip("p"+n+".jpg",load_mc);
var oListener:Object = new Object();
oListener.onLoadInit = function() {
Lw = load_mc._width;
Lh = load_mc._height;
load_mc._width = w;
load_mc._height = h;
load_mc._x = p[n]._x-w/2;
load_mc._y = p[n]._y-h/2;
load_mc.onEnterFrame = function() {
this._x += (Stage.width/2-Lw/2-this._x)/3;
this._y += (Stage.height/2-Lh/2-this._y)/3;
this._width += (Lw-this._width)/3;
this._height += (Lh-this._height)/3;
this.onRelease = function() {
this.removeMovieClip();
p_visible(true);
};
};
};
mcLoader.addListener(oListener);
}
function p_visible(bool) {
for (i=1; i<=15; i++) {
p[i]._visible = bool;
}
}
function p_filter(mc, c, vx, vy, s) {
var gl_filter:GlowFilter = new GlowFilter(c, 1, vx, vy, s, 1, false, false);
mc.filters = [gl_filter];
} |
グローフィルタークラスのインポート
配列 p の定義
表示行数
表示列数
サムネイルのインスタンスの配置
x座標
y座標
番号の取得
p_filter関数でグロー効果を付与する
ロールオーバーでrollov関数へ
ロールアウトでrollot関数へ
リリースでloadImg関数へ
グロー効果の幅を広くし、色を青色に
グロー効果を元に戻す
p_visible関数で、サムネイルを全て消す
サムネイルの番号
サムネイルの幅
高さ
大きな写真読み込み表示用ムービークリップ
MovieClipLoaderの作成
拡大写真のロード
リスナーオブジェクトの作成
ロードが終わり最初のフレームで
写真の幅を取得
高さ
サムネイルの幅にセット
サムネイルの高さにセット
元のサムネイルに位置にくるように調整
毎フレームごとに
ステージ中心に減速移動
幅、高さを本来の大きさに変化させる
拡大写真リリースで
ムービークリップの削除
サムネイルを表示
リスナーのセット
サムネイルの表示、非表示切り換え関数
グローフィルター関数
グローフィルターの作成
フィルターのセット
|