web,direction,planning,graphicdesign

2009年10月21日水曜日

ActionScript ユーザーがウィンドウサイズを変えるのに対応

ユーザーがウィンドウサイズを変えたとき、そのサイズに合わせるようにステージサイズを変更したい場合

stage.stageAlign = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

private var left:Number = 0;
private var top:Number = 0;
private var right:Number = stage.stageWidth;
private var bottom:Number = stage.stageHeight;


このようにムービーの上(top)、左(left)の境界は0で、右(right)と下(bottom)の境界はstage.stageWidthとstage.stageHeightです。必要なときにこれらを変数にいれておくことができます。

import flash.display.StageAlign;
import flash.display.StageScaleMode;

の読み込みも忘れずにインポートする必要がある。

2009年10月20日火曜日

ActionScript KeyboardEventについて、

<覚え書き>

addEventListenerするときは、stageにしないとキーボードの操作はできないですよー

ActionScript マウスを追いかけるやじるし

ActionScript スクリプトで矢印を描く
を読み込み、矢印をマウスをおいかけるようにする。


FollowMouse.as

package {
import flash.display.Sprite;
import flash.events.Event;

public class FollowMouse extends Sprite{
private var arrow:Arrow;
private var speed:Number = 10;
public function FollowMouse():void{
init();
}
private function init():void{
arrow = new Arrow();
addChild(arrow);
addEventListener(Event.ENTER_FRAME,onEnterFrameHandler);
}
private function onEnterFrameHandler(event:Event):void{
var dx:Number = mouseX - arrow.x;
var dy:Number = mouseY - arrow.y;
var angle:Number = Math.atan2(dy,dx);
arrow.rotation = angle*180/Math.PI;
var vx:Number = Math.cos(angle)*speed;
var vy:Number = Math.sin(angle)*speed;
arrow.x += vx;
arrow.y += vy;
}
}
}

2009年10月12日月曜日

ActionScript 三角関数の基本的な公式

■基本的な三角関数の計算

角度のサイン = 対辺/斜辺
角度のコサイン = 隣辺/斜辺
角度のタンジェント = 対辺/隣辺


■ラジアンから度へ、度からラジアンへの変換

ラジアン = 度 * Math.PI / 180
度 = ラジアン * 180 / Math.PI


■マウスの方向への回転
// mouseXやmouseYは任意の点のx,yに置き換える
dx = mouseX - sprite.x;
dy = mouseY - sprite.y;
sprite.rotation = Math.atan2(dy.dx)* 180 / Math.PI;


■波の作成
//valueはスプライトやムービークリップのx,yにその他のプロパティに割当
public function onEnterFrame(event:Event){
value = center + Math.sin(angle) * range;
angle += speed;
}


■円の作成
//Xposition,Ypositionをスプライトやムービークリップのxとyに割りあて
public function onEnterFrame(event:Event){
Xposition = centerX + Math.cos(angle)*radius;
Yposition = centerY + Math.sin(angle)*radius;
angle += speed;
}

■2点間の距離の取得
dx = x2 - x1;
dy = y2 - y1;
dist = Math.sqrt(dx*dx + dy*dy);

2009年10月10日土曜日

ActionScript サイン波

0のサインは0であり、90度(π/2ラジアン)のサインは1。
180度(πラジアン)のサインは0に戻り、270度(3/2π)のサインは-1、
360度(2π)のサインは再び0に戻ります。

例)

for(var angle:Number = 0; angle < Math.PI*2; angle +=0.1){
trace(Math.sin(angle));
}

この例では、変数angleは0の値でスタートし、Math.PI*2の値になるまで0.1ずつ増えていきます。
出力された値は0ではじまり、その後増えて1に近づき、そしてまた-1に近づくまでへっていき、再び0近くまで増えていきます。

2009年10月7日水曜日

ActionScript スクリプトで矢印を描く

いつかなにかのために使うときがあったらのためのメモです。

package{
import flash.display.Sprite;

public class Arrow extends Sprite{
public function Arrow(){
init();
}
public function init():void{
graphics.lineStyle(1,0,1);
graphics.beginFill(0xffff00);
graphics.moveTo(-50,-25);
graphics.lineTo(0,-25);
graphics.lineTo(0,-50);
graphics.lineTo(50,0);
graphics.lineTo(0,50);
graphics.lineTo(0,25);
graphics.lineTo(-50,25);
graphics.lineTo(-50,-25);
graphics.endFill();
}
}
}

フォロワー