第3回 勉強会 特設サイト | h9 Inc.
・
Actionscript3.0 < ナビゲーション周り >
→ ボタン処理系
→ xmlパース
→ イベントリスナーとは
→ 画像周り
■ボタン処理系
☆000_enterFrame.fla
mc.addEventListener( Event.ENTER_FRAME, onEnterFrameHandler );
function onEnterFrameHandler( event:Event ) {
mc.x++;
}
☆001_botton_引数について.fla
function onClickButton(e) {
trace( e.target.name + "を押しました");
}
button1.addEventListener(MouseEvent.CLICK,onClickButton);
☆002_ボタンとロールオーバー1.fla
button.buttonMode = true;
//ロールオーバー
function onRollover(event:MouseEvent):void {
button.alpha=1
}
//ロールアウト
function onRollout(event:MouseEvent):void {
button.alpha=0
}
button.alpha=0;
button.addEventListener(MouseEvent.ROLL_OVER, onRollover);
button.addEventListener(MouseEvent.ROLL_OUT, onRollout);
☆003_ボタンとロールーオーバー2__fade.fla
button.buttonMode = true;
//ロールオーバー
function onRollover(event:MouseEvent):void {
button.addEventListener(Event.ENTER_FRAME, onRollover2);
button.removeEventListener(Event.ENTER_FRAME, onRollout2);
}
function onRollover2(event:Event):void {
(button.alpha<=1) ?button.alpha+=(1.1-button.alpha)/3 : button.removeEventListener(Event.ENTER_FRAME, onRollover2);
}
//ロールアウト
function onRollout(event:MouseEvent):void {
button.addEventListener(Event.ENTER_FRAME, onRollout2);
button.removeEventListener(Event.ENTER_FRAME, onRollover2);
}
function onRollout2(event:Event):void {
(button.alpha>=0) ?button.alpha+=(-0.1-button.alpha)/3 : button.removeEventListener(Event.ENTER_FRAME, onRollover2);
}
button.alpha=0;
button.addEventListener(MouseEvent.ROLL_OVER, onRollover);
button.addEventListener(MouseEvent.ROLL_OUT, onRollout);
☆004_for文_.fla
var ttt=[m0,m1,m2];
for (var i=0; i<3; ++i) {
ttt[i].n=i;
ttt[i].addEventListener(MouseEvent.CLICK, nnn);
}
buttonMode = true;
function nnn(event:MouseEvent):void {
trace(event.target.name);
trace(event.target.n);
}
☆005_event.target as MovieClip.fla
function onRollover(event:MouseEvent):void {
var mc:MovieClip=event.target as MovieClip;
mc.frag=1;
mc.addEventListener(Event.ENTER_FRAME, onEnterframe);
}
function onRollout(event:MouseEvent):void {
var mc:MovieClip=event.target as MovieClip;
mc.frag=0;
mc.addEventListener(Event.ENTER_FRAME, onEnterframe);
}
function onEnterframe(event:Event):void {
var mc:MovieClip=event.target as MovieClip;
if (mc.frag==1) {
(mc.alpha<=1) ?mc.alpha+=(1.1-mc.alpha)/3 : mc.removeEventListener(Event.ENTER_FRAME, onEnterframe);
} else {
(mc.alpha>=0) ?mc.alpha+=(-0.1-mc.alpha)/3 : mc.removeEventListener(Event.ENTER_FRAME,onEnterframe);
}
}
function onClick(event:MouseEvent):void {
trace(last_num);
//
mc_array[last_num].mouseEnabled = true;
mc_array[last_num].frag=0;
mc_array[last_num].addEventListener(MouseEvent.ROLL_OUT, onRollout);
mc_array[last_num].addEventListener(Event.ENTER_FRAME, onEnterframe);
//
mc_array[event.target.n].mouseEnabled =false;
mc_array[event.target.n].removeEventListener(MouseEvent.ROLL_OUT, onRollout);
//
last_num=mc_array[event.target.n].n;
//
}
var last_num:int =0;
//ステージにbutton0,button1,button2を置く
var mc_array=[button0,button1,button2];
for (var i=0; i<3; ++i) {
mc_array[i].n=i;
mc_array[i].frag=0;
mc_array[i].alpha=0;
mc_array[i].buttonMode = true;
mc_array[i].addEventListener(MouseEvent.CLICK, onClick);
mc_array[i].addEventListener(MouseEvent.ROLL_OVER, onRollover);
mc_array[i].addEventListener(MouseEvent.ROLL_OUT, onRollout);
}
//初期化が必要な場合。。。
mc_array[last_num].alpha=1;
mc_array[last_num].mouseEnabled =false;
☆006_ボタンとロールーオーバー_main_sub.fla
長いので省略♪
■xmlパース
☆007_外部XML_URLLoader
// 外部XMLはURLLoaderで読み込む
var myLoader:URLLoader = new URLLoader();
myLoader.addEventListener(Event.COMPLETE, completeData);
myLoader.load(new URLRequest("test.xml"));
// 読み込み完了後の処理
function completeData(event:Event):void {
// 読み込んだ文字列をmyXMLに入れる
var myXML:XML = new XML(myLoader.data);
// データのnameとpriceの値をリストアップ表示
for (var i = 0; i < myXML.drink.length(); i++) {
trace(myXML.drink[i].name);
trace(myXML.drink[i].@price);
}
}
■イベントリスナーとは
↓ここで勉強しましょう♪
http://oshige.com/flash/as3note/2007/07/511.html
☆008_ドラッグと階層.fla
//window上でマウスボタンを押した時に実行する関数
function window_onDown(e:MouseEvent) {
if (e.target==e.currentTarget) {
//イベント発生対象と,イベント通知対象(window)が
//等しければドラッグ開始
e.currentTarget.startDrag();
message.text = "windowをドラッグ開始";
//ボタンを離したときと,画面外までドラッグしたときに関数を実行
e.currentTarget.addEventListener(MouseEvent.MOUSE_UP,window_onUp);
e.currentTarget.addEventListener(MouseEvent.MOUSE_OUT,window_onUp);
}
}
//window上でマウスボタンを離した時に実行する関数
function window_onUp(e:MouseEvent) {
if (e.target==e.currentTarget) {
//ドラッグ解除
e.currentTarget.stopDrag();
//イベント処理を外す
e.currentTarget.removeEventListener(MouseEvent.MOUSE_UP,window_onUp);
e.currentTarget.removeEventListener(MouseEvent.MOUSE_OUT,window_onUp);
message.text = "windowのドラッグ終了";
}
}
//ボタン上をクリックしたときの処理
function button_onClick(e:MouseEvent){
message.text = e.target.name + "をクリックしました";
}
//イベントを関連付ける
window.addEventListener(MouseEvent.MOUSE_DOWN,window_onDown);
window.button1.addEventListener(MouseEvent.CLICK,button_onClick);
■画像周り
☆009_外部サイトの画像を取得.fla
var loader:Loader = new Loader();
var req:URLRequest = new URLRequest("http://k.yimg.jp/images/top/sp/logo.gif");
loader.load(req);
addChild(loader);
loader.x=50
loader.y=50
☆010_スライドショー
参加者だけの特典♪