ActionScript宿題の続き

宿題であれやこれやと悩みつつ、
なんとか形になってきたので、
とりあえず、今日はここまで。
まだ動かないし、ボロボロっぽいけど。

描画範囲からはみ出さないようにする処理が
以上にどんくさいので、なんとかしたい・・・。
あとやたらと無駄な変数をつくっている気がする。

てか相当勉強不足感が否めない感じ。
でも、晒す・・・。



date:2009年05月22日 01:52 | COMMENT (0) | TRACKBACK (0)

ActionScript宿題

ブログを早くもさぼり中です。
先日書いたActionScript勉強会
宿題が出た!?ので、TVでやっている戦国自衛隊を横目で
見ながら勉強中。
でも、眠さが限界なので、今日はここまで。
何を作っているかは、出来たら公開します。

とりあえずは多次元配列を作って、いろいろいじってたり。

これ以降の処理はもう少し自分の錆びついた頭を使わないといけなさそうなので、
あとでやる。



このあと、この多次元配列をいろいろする予定ですが、
全然進みません。

というか最近、英語といい、社内勉強会といい、宿題がたんまりありすぎて
ほかのことができてない。。というのは言い訳か。

tag:

date:2009年05月19日 02:48 | COMMENT (0) | TRACKBACK (0)

ActionScript3をぼちぼち勉強

早起きしすぎて、夕方寝てしまったので、
どうも生活がおかしくなってしまっています。

本も読み飽きたので、ActionScript3.0入門ノートを読みつつ、
AS3の基本的なところを勉強。
AS2からとどこが違うかをとりあえず。


Spriteクラスというのがあるらしい。
ムービークリップのひとつ上の階層(タイムラインがないムービークリップみたいな)
と覚えておく。
Helpを見ると、
MovieClip→Sprite→DisplayObjectContainer→InteractiveObject→DisplayObject→EventDispatcher→Object
の順に継承されいるようです。

とりあえず、本を見ながら、なにか作ってみようと思い、
下記のような感じに。

ポイントとしては、
・Spriteクラスで表示オブジェクトを作成
・作成した表示オブジェクトの中でいろいろやる。(Graphics クラスはまた今度くわしく勉強する)
・表示オブジェクトは、addChildで表示リストに追加する
・Spriteは取ったりはずしたりが自由にできる(removeしてもメモリ上には存在する)
・基本的にはイベントリスナーを使って制御

う~んレベル低すぎるけど、少しずつ。


//containerを作成
var container:Sprite = new Sprite();

//circleを作成
var mySp1:Sprite = new Sprite();
mySp1.graphics.beginFill(0x0000FF);
mySp1.graphics.drawCircle(0,0,100);
mySp1.graphics.endFill();
mySp1.x=150;
mySp1.y=150;
mySp1.name = "circle";

//boxを作成
var mySp2:Sprite = new Sprite();
mySp2.graphics.beginFill(0xFFFF00);
mySp2.graphics.drawRect(0,0,200,200);
mySp2.graphics.endFill();
mySp2.x=120;
mySp2.y=120;
mySp2.name = "box";

//containerの中にmySp1とmySp2を配置
addChild(container);
container.addChild(mySp1);
container.addChild(mySp2);


//buttonを作成
var mySp3:Sprite = new Sprite();
mySp3.addEventListener(MouseEvent.CLICK, changeorder);
mySp3.x=10;
mySp3.y=10;
mySp3.name = "button1";

var mySp3txt = new TextField();
mySp3txt.text = "並び順を変更";
mySp3txt.border = false;
mySp3txt.textColor =0xFFFFFF;
mySp3txt.embedFonts = false;
mySp3txt.selectable = false;
mySp3txt.background = true;
mySp3txt.backgroundColor = 0x000000;
mySp3txt.autoSize = TextFieldAutoSize.LEFT;

addChild(mySp3);
mySp3.addChild( mySp3txt );



function changeorder(event:MouseEvent):void{
//コンテナーの中の表示オブジェクトの数
var cnt:int = container.numChildren;
//as SpriteでSpriteに戻す(Spriteにできない場合はnullが入る)
var sp:Sprite = container.getChildAt(0) as Sprite;
container.setChildIndex(sp,cnt-1);
}

tag:

date:2008年06月22日 05:07 | COMMENT (0) | TRACKBACK (0)

ExternalInterfaceクラスでJavascriptの関数を呼び出す

仕事で使ったのでメモる。
こんな便利なクラスがあったんですね。
まだまだ勉強が足りません。
悩んで損した。

クリックするとalertの関数を呼び出す
ExternalInterfaceクラスを読み込んで、
ExternalInterface.call("関数名","引数");
って書くだけ。

Flash ActionScript側に
import flash.external.ExternalInterface;

_root.btalert.onRelease =function(){
ExternalInterface.call("callAlert","FlashからJavascript成功");
}



HTML側に下記のように追加 <script type="text/javascript">
    function callAlert(aString) {
        alert(aString);
    }
</script>



サンプル
サンプルソース


tag:

date:2008年02月21日 17:53 | COMMENT (0) | TRACKBACK (0)

Action Script3.0の良書

as3book.jpg
ActionScript 3.0 アニメーション

まだまだActionScript3.0に関する本は少ないのですが、
ActionScript2.0からするとなかなかとっきにくく、
どうしたもんかと思っていたら、社内の優秀なFlasher君に
いい本を教えてもらいました。

とりあえず、社内に一冊、自分用に一冊購入。
この本を一冊マスターすれば、ほぼ何でもできるだろうと、
言っておりました。

いやはや、これからも勉強の毎日です。

tag:

date:2008年01月17日 00:42 | COMMENT (0) | TRACKBACK (0)

やっぱAS3すごい

524_2.jpg

524_1.jpg

524_3.jpg

AS2の10倍の演算処理ができるAS3。
やっぱすごいわ。
上の画像は
ADOBE CREATIVE SUITE 3 Web Edition TOUR レポート
PICTIPSの城戸さんがつくったデモで公開されていたもの。
こんだけグリグリ動かしてブラーかけてこれだもんね。
Papervisionとかでグリグリ動かすとすごいもんができそう。

勉強せんといかんな。

tag:

date:2007年12月09日 04:32 | COMMENT (0) | TRACKBACK (0)

実験的Flashのソースがダウンロードできるサイト

amlabo.jpg

みたいなすばらしいFlashのソースがダウンロードできたりします。
Andre Michelleの自分の勉強用サイト。
レベル高いっす。

date:2007年09月09日 00:36 | COMMENT (0) | TRACKBACK (0)

ある最小値とある最大値の間の乱数を求める

//ある最小値とある最大値の間の乱数を求める
var min=1;
var max=12;

//最小値+Math.floor(Math.random()*(最大値-最小値+1));
var num=min+Math.floor(Math.random()*(max-min+1));

trace(num);

tag:

date:2007年09月04日 09:06 | COMMENT (0) | TRACKBACK (0)

イベントリスナーの基本1

//ObjectクラスのmyObjインスタンスを作る
myObj = new Object();
//イベントハンドラを設定する
myObj.onMouseDown = function(){
trace("CLCICK");
}

//myObjをMouseクラスのイベントリスナーに登録する
Mouse.addListener(myObj);

tag:

date:2007年09月01日 17:43 | COMMENT (0) | TRACKBACK (0)

0〜9の整数を求める

var evalue1 = Math.floor(Math.random()*10);
var evalue2 = ~~(Math.random()*10);
var evalue3 = Math.random()*10 | 0;

どれでもできる。

tag:

date:2007年09月01日 17:41 | COMMENT (0) | TRACKBACK (0)

モバイルflash liteでボタンに黄色い線を出さない方法

flash liteでボタンの周りに黄色い線が出て、
なんか消えないなぁ〜と悩んでいたら、一発で解決。

_focusrect = false ;
って書くだけ。

はまった。。。


focusrect.jpg

tag:

date:2007年08月25日 05:12 | COMMENT (0) | TRACKBACK (0)

javascriptとかflashでMAC OS XのDockの動きを再現する

MacのOS XのDockの動きを模したサイトを良く見かけるのですが、
FlashでもJavascriptでも実現できるようです。

macdoc.jpg

Javascriptの場合
iFishEye
ライブラリで配布してくれているので、簡単に実装が可能です。

Flashの場合
Apple style OS X Dock in Macromedia Flash MX 2004
flaファイルも配っているので、カスタマイズも自由です。

tag:

date:2007年08月20日 03:01 | COMMENT (0) | TRACKBACK (0)

fladdictさんのブックマーク

fladdictさんのdel.icio.usのブックマークが
公開されてたので、メモ。

actionscript関連はここ見ればたいがい掲載されているらしい。
classやlibraryなどで細かく分類されているので、
使いやすいかも。

http://del.icio.us/fladdict/

tag:

date:2007年08月16日 06:29 | COMMENT (0) | TRACKBACK (0)

AsBroadcasterの練習

AsBroadcasterクラスが便利というのを
聞いてちょっと練習。

Broadcasterが放送局で、
Lsitnerが受け手(受信側)という意味。
そのまんまですね。

ボールが左から右へ移動し、
端まで移動したらSTOPし、「アニメーション終了」のメッセージを出す。

SAMPLE
SOURCE

_rootのフレームに //インスタンスの設定
var ballMC:MovieClip;
var bt:Button;
_global.goalX = 500;

//ブロードキャスターの作成
var objCast:Object = new Object();
AsBroadcaster.initialize(objCast);
//リスナーの作成
var objListener:Object = new Object();
objListener.eventComplete = function():Void  {
    txt.text="アニメーション終了";
};
objCast.addListener(objListener);

//ボタン動作
bt.onRelease = function():Void  {
    ballMC.startMC();
};


ballMCにのフレームに function startMC() {
    this.onEnterFrame = function() {
        this._x += 8;
        _parent.txt.text=String(this._x);
        if (this._x>_global.goalX) {
            _parent.objCast.broadcastMessage("eventComplete");
            delete this.onEnterFrame;
        }
    };
}


こんな感じでしょうか。 もう少し勉強しないとダメな感じです。

tag:

date:2007年07月19日 03:05 | COMMENT (0) | TRACKBACK (0)

setIntervalの使い方

いろいろ勉強しているんですが、
なかなかあたまに入らないです。
とりあえずひとつひとつ学習していきます。

今日はsetIntervalの復習から。
1000ミリ秒単位で数字に1を足して書き出し。
数字が10になったら、処理を削除。

var testnum:Number = 0;
createTextField("testtxt", 1, 10, 10, 200, 200);
//testという関数を1000ミリ毎に呼び出し
IntervalID = setInterval(test, 1000);

//呼び出す関数
function test() {
    testnum++;
    _root.testtxt.text = testnum;
    //testnumが10以上になったらsetintervalを削除
    if (testnum>9) {
        clearInterval(IntervalID);
    }
}
サンプル flaファイル

tag:

date:2007年05月26日 09:51 | COMMENT (2) | TRACKBACK (0)

fusekitの練習2:コールバック関数の使い方

なんか順序がバラバラですが、メモ。 これは便利。
コールバック関数を使えば、
FuseKitのShortcuts クラスの前後や実行中に、
いろいろと処理ができる。


var photo:MovieClip;
//------------------------------------------------
//fusekitの読み込み
//------------------------------------------------
import com.mosesSupposes.fuse.*;
ZigoEngine.simpleSetup(Shortcuts, PennerEasing);


//fuseのコールバック関数の使い方
//最初に実行 startfunc:関数,startargs:引数
//実行中に実行 updfunc:関数,updargs:引数
//実行後に実行 func:関数,args:引数

_root.photo.slideTo("200"null, 2, "easeInOutQuint", 0, {startfunc:nowstateText,startargs:"移動スタート",updfunc:nowstateText,updargs:"移動中",func:nowstateText, args:"移動完了"});

//------------------------------------------------
//コールバック用
//------------------------------------------------
function nowstateText(st:String) {
    _root.nowstate.text="現在は"+st;
}


SAMPLE
fla source

tag:

date:2007年05月23日 08:40 | COMMENT (0) | TRACKBACK (0)

fuse kitの練習1:ショートカットプロパティ一覧

Fusu Kitというライブラリがあるということを
聞いて早速使ってみる。

いや本当に便利です。
これ使ったら、もう戻れなそうな感じです。

Fuse Kitをダウンロード

とりあえず、どう使うかを試しながら、勉強していこうと思います。

手始めにショートカットプロパティの一覧をつくる。
_scaleとか_brightnessとか_alphaのように使えるので、
便利。

//Fuse Kitのショートカットクラスを読み込み
import com.mosesSupposes.fuse.*;
ZigoEngine.simpleSetup( Shortcuts, PennerEasing );



toraMC1._scale = 90;
toraMC2._size = 100;
toraMC3._tint = 0xCCCCCC;
toraMC4._tintPercent = 50;
toraMC5._brightness = 50;
toraMC6._brightOffset = 30;
toraMC7._invertColor = 40;
toraMC8._invertColor = 40;
toraMC8._colorReset = 50;
toraMC9._contrast =200;
toraMC10._colorTransform= { ra:100, ba:0, gb:100 }



ショートカットプロパティ一覧


tag:

date:2007年05月22日 01:06 | COMMENT (0) | TRACKBACK (0)

XML読むときにキャッシュを読み込まないように

メモ。
基本だと思うんですが。。。
XMLをロードするときキャッシュ読み込んでしまうようなので、
下記方法で回避。

myXML.load("hogehoge.xml"+"?nocache="+new Date().getTime());

tag:

date:2007年04月24日 05:09 | COMMENT (0) | TRACKBACK (0)