2010年3月11日木曜日

スペースキー(など)が押されたら何か処理を始めたい時のやりかたメモ。

スペースキー(など)が押されたらある関数を実行、という場合のメモ。
以下のような感じ。

stage.addEventListener(KeyboardEvent.KEY_DOWN,isSpace);

function isSpace(e:KeyboardEvent){
    if(e.keyCode==Keyboard.SPACE){
        showQuestion(e);
    }
}


(それにしても、手打ちで全部やっていると、書き間違いが多い。。
escショートカットはせめて覚えなくては。。)

TextFieldにfocusを自動であてるには、stage.focus=textField_name;

入力窓に自動的にフォーカスをあてたかったのでググると英語で、
stage.focus=txt;
と書けばいい、とどこかに書いてありました。
そのままやると、すぐできた。

こりゃ便利。

2010年3月10日水曜日

やっとflash developが使えました。

いろいろやってもflash developで書いたAS3コードが以下のようなエラーを排出するのでまいってました。
Error: a target file must be specified

しかし、
http://www.trick7.com/blog/video/flashdevelop/

のビデオを拝見し、Flash CS4上でflaファイルを作り、
ドキュメントクラスのプロパティでクラス名をつけてやり、
そのクラス名でFlash Developにてクラスを書いてやると、無事いけました。

ほ!

これでやっと素晴らしい自動補完機能を使って、AS3のコーディングができます。

ありがたや。。。

へぼへぼのASコードによるswfファイルを上げておきます。 。


回転部分のコードは以下に。
         var sp2:Sprite = new Sprite();
            sp2.graphics.beginFill(0xf0f000);
            sp2.graphics.drawRoundRect(120,120,80,80,5,5);
            sp2.graphics.endFill();
            sp2.buttonMode = true;
            addChild(sp2);
           
            var centerX:int = 140;
            var centerY:int = 60;
            var radius:int = 130;
            var angle:int = 0;
            addEventListener(Event.ENTER_FRAME, onLoad);
            function onLoad(e:Event):void {
                   
                    var radian:Number=angle*Math.PI/180;
                    sp2.x = centerX+Math.cos(radian)*radius;
                    sp2.y = centerY + Math.sin(radian) * radius;
                    sp2.alpha = 0.7;
                    sp.x += 2;
                    angle+=5;
            }
(円運動させるとき、ラジアンとMath.PI,Math.sin,Math.cosって便利ですね。)

配列の中の値の検索はarrayname.indexOf();

indexOf();は便利。
値があれば、配列のindexを返し、なければ-1を返してくれる。

array.indexOf(searchElement)という書式。

数を並べてみた。



数を並べてみた。
コードは以下のような感じ。

for(var j:int=0;j<15;j++){
for(var i:int=0;i<15;i++){
var txt:TextField=new TextField();
txt.x=35*i;
txt.y=35*j;
txt.width=35;
txt.height=35;
txt.border=true;
txt.borderColor=0x000000;
var num:int=i+15*j;
txt.text=num.toString();
addChild(txt)
}
}

TextFieldとTextFormatの指定って面倒。。

AS3でテキストをテキストフィールドを使って表示させ、フォーマットも設定するのって、ちょっと面倒です。
面倒だから、以下にお試しコードをメモ。

var txt:TextField=new TextField();
var fm:TextFormat=new TextFormat();
txt.x=250;
txt.y=10;
fm.size=40;
txt.defaultTextFormat=fm;
txt.text="something";
addChild(txt);

array.splice();で配列からランダムに値を抜き出す

array.splice(a,b);
で配列から値を抜き出して、元の配列に残さない、というメソッドを初めて使いました。

配列からランダムに値を抜く、ということがしたかったので、
Math.random()を使って、乱数を生成し、splice();で抜き出せました。

便利。