//Tween、easingクラスのインポート
import mx.transitions.Tween;
import mx.transitions.easing.*;
//グローフィルターのインポート・設定(写真の枠取り)
import flash.filters.GlowFilter;
var glow1:GlowFilter = new GlowFilter(0xffffff, 0.6, 3, 3, 8, 3, true);
var glow2:GlowFilter = new GlowFilter(0xff0000, 0.6, 3, 3, 8, 3, true);
var glow3:GlowFilter = new GlowFilter(0xffffff, 0.8, 16, 16, 8, 1, true);
//スライド数(シリーズ1,2)、サムネイルのサイズ
var pNum1 = 68;
var pNum2 = 65;
var th_w = 160;
var th_h = 107;
//サムネイル群表示のマージン
var x0 = 20;
var y0 = 100;
//文字のフォーマット
txtFormat1 = new TextFormat();
txtFormat1.color = 0xFFFFFF;
txtFormat1.size = 13;
txtFormat2 = new TextFormat();
txtFormat2.color = 0xffc6b1;
txtFormat3 = new TextFormat();
txtFormat3.color = 0xffffff;
txtFormat3.size = 16;
txtFormat5 = new TextFormat();
txtFormat5.color = 0x000000;
txtFormat5.bold = true;
//ステージの設定
Stage.scaleMode = "noScale";
Stage.align = "LT";
//目次の表示
//目次表示用MC作成、配置
this.createEmptyMovieClip("contentsList",0);
contentsList._x = 200;
contentsList._y = 100;
//表題
var title = contentsList.createEmptyMovieClip("title", 0);
title.createTextField("tf",0,0,0,300,50);
var titleFormat = new TextFormat();
titleFormat.color = 0xffffff;
titleFormat.size = 42;
title.tf.text = "My Album";
title.tf.setTextFormat(titleFormat);
//アルバム(今回は2つ)
var contentNo:Number;
var content1 = contentsList.createEmptyMovieClip("c1", 1);
content1.createTextField("tf",0,0,0,600,50);
var content2 = contentsList.createEmptyMovieClip("c2", 2);
content2.createTextField("tf",0,0,0,600,50);
var cntFormat = new TextFormat();
cntFormat.color = 0xffffff;
cntFormat.size = 36;
cntFormat.underline = true;
var subtitle1 = "剣岳・立山連峰登頂記 2011/7/22-24";
var subtitle2 = "笠ヶ岳登頂記 2011/9/8-9";
content1.tf.text = subtitle1;
content1.tf.setTextFormat(cntFormat);
content1._x = 50;
content1._y = 100;
content2.tf.text = subtitle2;
content2.tf.setTextFormat(cntFormat);
content2._x = 50;
content2._y = 170;
//題名表示
this.createTextField("titleTxt",3,10,10,350,50);
titleTxt._x = 30;
titleTxt._y = 20;
var contentSelected = false;
//content1,2リリースでフルスクリーンに切り替えて、それぞれのサムネイルを表示
content1.onRelease = function() {
contentSelected = true;
titleTxt.text = subtitle1;
titleTxt.setTextFormat(txtFormat3);
contentsList._visible = false;
contentNo = 1;
setPosition();
};
content2.onRelease = function() {
contentSelected = true;
titleTxt.text = subtitle2;
titleTxt.setTextFormat(txtFormat3);
contentsList._visible = false;
contentNo = 2;
setPosition();
};
//Thumbnail群格納用ムービークリップ
this.createEmptyMovieClip("thumbContainer",this.getNextHighestDepth());
//拡大写真読み込み用ムービークリップ
this.createEmptyMovieClip("load_mc",this.getNextHighestDepth());
//ウインドウサイズに応じた配置
function setPosition() {
if (contentSelected) {
w = Stage.width;
thumbArrangement(w);
load_mc._x = Stage.width / 2 - load_mc_w;
load_mc._y = Stage.height / 2 - load_mc_h;
buttons_mc._x = (Stage.width / 2 - buttons_mc_w / 2);
buttons_mc._y = Stage.height - 30;
return_btn._x = Stage.width - 200;
}
}
myListener = new Object();
myListener.onResize = function() {
setPosition();
};
Stage.addListener(myListener);
//サムネイル群のフルスクリーン表示
function thumbArrangement(w) {
Stage["displayState"] = "fullScreen";
return_btn._visible = true;
if(contentNo==1) {
pNum = pNum1;
} else {
pNum = pNum2;
}
for (i = 1; i <= pNum; i++) {
var mc = thumbContainer.createEmptyMovieClip("mc" + i, 100 + i);
var in_mc = mc.createEmptyMovieClip("inmc" + i, i);
in_mc.loadMovie("img"+contentNo+"/ps" + i + ".jpg");
var colNum = Math.floor((w - 2 * x0) / (th_w + 5));
mc._x = (i - 1) % colNum * (th_w + 5);
mc._y = y0 + (th_h + 5) * Math.floor((i - 1) / colNum);
mc.num = i;
mc.filters = [glow1];
mc.onRollOver = rOver;
mc.onRollOut = rOut;
mc.onRelease = function() {
picNo = this.num;
loadPic(picNo);
};
}
var thumbC_w = colNum * (th_w + 5);
thumbContainer._x = w / 2 - thumbC_w / 2;
}
function rOver() {
this.filters = [glow2];
}
function rOut() {
this.filters = [glow1];
}
//マウスホイールでサムネイルスクロール
wheelScrl = new Object();
wheelScrl.onMouseWheel = function(d) {
thumbContainer._y += 5 * d;
};
Mouse.addListener(wheelScrl);
//拡大写真のロードと表示
function loadPic(picNo) {
thumbContainer._visible = false;
var commentNo = picNo - 1;
var mcLoader:MovieClipLoader = new MovieClipLoader();
jpg = "img"+contentNo+"/pl" + picNo + ".jpg";
mcLoader.loadClip(jpg,load_mc);
var oListener:Object = new Object();
oListener.onLoadInit = function() {
startx = Stage.width / 2;
starty = Stage.height / 2;
load_mc_w = load_mc._width / 2;
load_mc_h = load_mc._height / 2;
load_mcx = Stage.width / 2 - load_mc_w;
load_mcy = Stage.height / 2 - load_mc_h;
load_mc.filters = [glow3];
new Tween(load_mc, "_x", Regular.easeOut, startx, load_mcx, 0.5, true);
new Tween(load_mc, "_y", Regular.easeOut, starty, load_mcy, 0.5, true);
new Tween(load_mc, "_alpha", Regular.easeOut, 0, 100, 1, true);
new Tween(load_mc, "_xscale", Regular.easeOut, 0, 100, 0.5, true);
var tw = new Tween(load_mc, "_yscale", Regular.easeOut, 0, 100, 0.5, true);
tw.onMotionFinished = function() {
load_mc.onRelease = load_mcRels;
fillRec(commentBar,0xffffff,load_mc_w * 2,30);
commentBar._visible = true;
commentBar._x = load_mcx;
commentBar._y = load_mcy + 2 * load_mc_h;
new Tween(commentBar, "_alpha", Regular.easeOut, 0, 100, 1, true);
if(contentNo==1) {
comment.text = memo1[commentNo];
} else {
comment.text = memo2[commentNo];
}
c_btn._x = 2 * load_mc_w - 100;
};
};
mcLoader.addListener(oListener);
buttons_mc._visible = return_btn._visible = true;
}
//拡大写真を非表示・サムネイル群再表示
function load_mcRels() {
mcTween = new Tween(load_mc, "_alpha", Regular.easeOut, 100, 0, 0.5, true);
mcTween.onMotionFinished = function() {
load_mc.unloadMovie();
thumbContainer._visible = true;
};
if (mode !== "full") {
Stage["displayState"] = "normal";
return_btn._visible = flase;
}
buttons_mc._visible = commentBar._visible = false;
}
//ボタン類収納ムービークリップ
this.createEmptyMovieClip("buttons_mc",200);
var buttons_mc_w = 500;
buttons_mc._visible = false;
//送りボタンの表示とロールオーバー効果
forward_btn = buttons_mc.createEmptyMovieClip("f_btn", 201);
forward_btn._x = 280;
forward_btn.createTextField("tf",201,0,0,100,50);
forward_btn.tf.text = " 次 へ >>";
forward_btn.tf.setTextFormat(txtFormat1);
fillRec(forward_btn,0x444444,110,20);
forward_btn.onRollOver = function() {
forward_btn.tf.setTextFormat(txtFormat2);
fillRec(this,0x000000,110,20);
};
forward_btn.onRollOut = function() {
forward_btn.tf.setTextFormat(txtFormat1);
fillRec(this,0x444444,110,20);
};
//戻りボタンの表示とロールオーバー効果
backward_btn = buttons_mc.createEmptyMovieClip("b_btn", 202);
backward_btn._x = 40;
backward_btn.createTextField("tf",202,0,0,100,50);
backward_btn.tf.text = " << 戻 る ";
backward_btn.tf.setTextFormat(txtFormat1);
fillRec(backward_btn,0x444444,110,20);
backward_btn.onRollOver = function() {
backward_btn.tf.setTextFormat(txtFormat2);
fillRec(this,0x000,110,20);
};
backward_btn.onRollOut = function() {
backward_btn.tf.setTextFormat(txtFormat1);
fillRec(this,0x444444,110,20);
};
//送りボタン、戻りボタンのアクション
forward_btn.onRelease = fwSlide;
backward_btn.onRelease = bwSlide;
function fwSlide() {
commentBar._visible = false;
if (picNo++ > pNum - 1) {
picNo = 1;
}
if (!picNo) {
picNo = 1;
}
loadPic(picNo);
}
function bwSlide() {
commentBar._visible = false;
if (picNo-- < 2) {
picNo = pNum;
}
if (!picNo) {
picNo = pNum;
}
loadPic(picNo);
}
//目次に戻るボタン
return_btn = this.createEmptyMovieClip("r_btn", 203);
return_btn._x = Stage.width - 200;
return_btn._y = 30;
return_btn.createTextField("tf",203,0,0,180,20);
return_btn.tf.text = " X 目次に戻る";
return_btn.tf.setTextFormat(txtFormat1);
fillRec(return_btn,0x444444,120,20);
return_btn._visible = false;
return_btn.onRollOver = function() {
return_btn.tf.setTextFormat(txtFormat2);
fillRec(this,0x000,110,20);
};
return_btn.onRollOut = function() {
return_btn.tf.setTextFormat(txtFormat1);
fillRec(this,0x444444,120,20);
};
return_btn.onRelease = function() {
mcTween = new Tween(load_mc, "_alpha", Regular.easeOut, 100, 0, 0.5, true);
mcTween.onMotionFinished = function() {
load_mc.unloadMovie();
Stage["displayState"] = "normal";
return_btn._visible = false;
buttons_mc._visible = commentBar._visible = false;
thumbContainer.unloadMovie();
contentsList._visible = true;
titleTxt.text = "";
}
};
//コメント表示、及び、閉じるボタンの作成・アクション
var commentBar = this.createEmptyMovieClip("commentBar", 210);
commentBar._visible = false;
var comment = commentBar.createTextField("tf", 210, 10, 5, 500, 30);
comment.setTextFormat(txtFormat5);
var c_btn = commentBar.createEmptyMovieClip("c_btn", 211);
c_btn.createTextField("tf",211,0,0,100,30);
c_btn.tf.text = "X 閉じる";
c_btn._y = 5;
c_btn.tf.setTextFormat(txtFormat5);
c_btn.onRelease = function() {
mode = "full";
load_mcRels();
};
//ボタン類の塗り
function fillRec(mc, color, w, h) {
mc.clear();
mc.lineStyle("2",0x000000);
mc.beginFill(color);
mc.moveTo(0,0);
mc.lineTo(w,0);
mc.lineTo(w,h);
mc.lineTo(0,h);
mc.lineTo(0,0);
mc.endFill();
}
//各写真のメモ(コメント)を配列で定義
var memo1:Array = new Array("前剣の南面", "前剣を登る人たち", "以下省略");
var memo2:Array = new Array("朝日に逆光の穂高岳","秩父沢","鏡平池と槍ヶ岳","以下省略");
|