約2ヶ月ほったらかし....。
継続はむずかしいです。
今回は自分自身のメモもかねて、初のお勉強な内容。
flashでメニュー的な何かを作ってみます。
とってもつまらん内容ですので、あしからず。
内容はサイトの上部とかに良くある様なflashで
- 時間経過でサムネイルメニューに対応した写真が切り替わる
- ロールオーバーで同様に写真が切り替わる。
ってな物を作ってみました。
特に目的が無いのでメニュー自体も写真を貼付けただけの物なんで
デザイン的にアレなんですが、まぁ自身のASの勉強って事で。
どのように実装するのが正しいのかは、よく判らんのですが
とりあえず動いてますんで載っけてみます。

どうやって動かすか
- Timerクラスを使って一定時間おきに表示を切り替え
- 切り替え判定用の変数[now]を用意して表示を処理
- ボタンの名前を利用してロールオーバーの制御
- 表示はTweenerで制御
ステージの準備
- 表示のメインとなる写真をインスタンス名img1〜img4の連番でMCに変換してステージに配置
- 同じくボタンとなる写真をインスタンス名btn1〜btn4の連番でMCに変換してステージに配置
ドキュメントクラス
-
package{
-
-
import caurina.transitions.Tweener;
-
import caurina.transitions.properties.FilterShortcuts;
-
import caurina.transitions.properties.ColorShortcuts;
-
-
-
-
public function Main (){
-
-
//Tweenerのフィルタ使用の為の初期化
-
FilterShortcuts.init();
-
ColorShortcuts.init();
-
//ステージに配置した写真を操作しやすい様にarrayにいれとく
-
pAry = [img1,img2,img3,img4];
-
tAry = [btn1,btn2,btn3,btn4];
-
//サムネイル横の現在表示バーの作成
-
sp.graphics.beginFill(0xe814c3);
-
sp.graphics.drawRect(0,0,5,90);
-
sp.graphics.endFill();
-
sp.x = stage.stageWidth-tAry[0].width-sp.width;
-
addChild(sp);
-
-
//それぞれのボタンのロールオーバーを監視
-
}
-
-
loop();
-
}
-
-
function loop():void{
-
//タイマー作成。指定時間おきにchangeを実行
-
cTime.start();
-
}
-
-
if(i == now){
-
fadeIn(pAry[i]);
-
light(tAry[i]);
-
}else{
-
fadeOut(pAry[i]);
-
dark(tAry[i]);
-
}
-
/*判定用の変数と[i]を評価し、それぞれの処理を実行
-
nowは下のif内で自身を++していき写真の数を超える場合「0」に戻る
-
これらが指定時間おきに実行される
-
*/
-
}
-
barMove();
-
if(++now>= pAry.length){
-
now = 0;
-
}
-
}
-
-
//ボタンの名前を利用して判定用の変数に代入
-
/*ボタン名をbtn1からの連番でつけてしまったので
-
数字だけ抜き出して「1」引いてます
-
ややこしい。。。*/
-
now = actBtn;
-
//ロールオーバー時に動いているタイマーを一度ストップ
-
cTime.stop();
-
//新たにタイマーを動かす
-
loop();
-
}
-
-
/*以下フェードイン等の見た目をTweenerで*/
-
-
Tweener.addTween(o,{
-
time:1.5,
-
alpha:1,
-
_Blur_blurX:0,
-
_Blur_blurY:0,
-
transition:"easeOutCubic"
-
});
-
}
-
Tweener.addTween(o,{
-
time:1.2,
-
alpha:0,
-
_Blur_blurX:10,
-
_Blur_blurY:10,
-
transition:"easeOutCubic"
-
});
-
}
-
function barMove(){
-
Tweener.addTween(sp,{
-
time:0.8,
-
y:90*now,
-
transition:"easeOutCubic"
-
});
-
}
-
Tweener.addTween(o,{
-
time:0.6,
-
_tintBrightness:-0.8,
-
transition:"easeOutCubic"
-
});
-
}
-
-
Tweener.addTween(o,{
-
time:0.6,
-
_tintBrightness:0,
-
transition:"easeOutCubic"
-
});
-
}
-
}
-
}
今回のキモ「changeメソッド」
判定用に用意した変数[now]を設定時間おきに
メイン表示用の写真を収めた配列内で評価。
変数[now]の数値に該当する配列内の写真をfadeIn
それ以外はfadeOutとします。
55行目〜61行目
if(i == now){
fadeIn(pAry[i]);
light(tAry[i]);
}else{
fadeOut(pAry[i]);
dark(tAry[i]);
}
で写真の表示が済んだら次にメソッドが呼ばれる時の為に
nowの数値を更新しておきます。
68行目〜70行目
if(++now >= pAry.length){
now = 0;
}
色々と書籍を読んだりしながら牛歩で勉強しとりますが
どういう風に関数を使うみたいな基礎は勉強できても
ロジック的な部分って実際のサンプルソースみたいなのが
無いと難しいなと痛感しとります。
経験を積めば色々と思い浮かぶんでしょうかね?
で、文章にまとめるのムズカシ!
自分で読む分には問題ないんやけど
これ、他人が読んで判るんでしょうかね?
まぁ、いいや。
さて、次はどーしよかな....。
- Older: チョコレートとか
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.flat-3.net/blog/2009/06/29-013515/trackback?_wpnonce=addee70a62
- Listed below are links to weblogs that reference
- flash[AS3.0]のお勉強 from flat3.blog