as3_外部ページへリンク

AS3では、AS2までつかえていたGetURLは使えなくなりました。

ちょっと面倒なのですが
flash.net.URLRequestクラスのインスタンスを作成してURLを指定してから、
flash.net.navigateToURLでページへ飛びます。

//URLの指定
var url:URLRequest = new URLRequest( "http://hondakiyoshi.com/" );
//ページへジャンプ
navigateToURL( url );

URLRequest.urlプロパティーにあるので
後から書き換えできます。

//URLの指定
var tourl:URLRequest = new URLRequest( "http://hondakiyoshi.com/" );
tourl.url = "http://google.co.jp";
navigateToURL( tourl );
//最初にhondakiyoshi.comを指定していますが、書き換えてるのでgoogleに飛びます。

getURL1つだけでOKだったのに比べるとめんどいですね。

ちなみにボタンをクリックしたときにリンクするサンプル。
(アフィリエイトではないので気軽にクリックしてくださいw)

ソースコードはこちら。

buybtn.addEventListener(MouseEvent.CLICK, buybtnClick);

function buybtnClick(event:MouseEvent):void {
	var tourl:URLRequest = new URLRequest( "http://www.amazon.co.jp/");
	navigateToURL( tourl  ,"_blank");
}






WE LOVE HYSTERIC GLAMOUR

hysjeans

design_dazzy flash_hondakiyoshi

本日UPのZOZOTOWNトピックスWE LOVE HYSTERIC GLAMOUR
FLASHを使ったリッチコンテツ。
見所は、とにかくでかい写真。フルスクリーンでどうぞ。
ヒスのかっこよさを細部まで伝えるには大画面しかない!
とりあえずkenji edaの写真が凄い。







sad chrome!!

ge1
以前はMac,WinともにFirefox最高と思ってましたが、
個人的ブラウザ最新事情は、MacはSafari、WinはGoggle Chromeです。

FirefoxはMac,Winどちらも最新バージョンは重くなったように感じます、起動も遅くてダメです。
Snow LeopardになってからMac Safariの最新版はサクサク動いて快適なので完全にSafariに移行しちゃいました。
Windowsでは大分前からGoogleChromeでシンプルでサクサク動くしとても快適。
早くMac版も出してほしい。

で、TOPの画像なんですが
Googleクロームがエラーで落ちたときの画面です。


そして、ページ内部でFlashプラグインが落ちたときの画面。
ge2


これって、昔からのMacユーザーなら知っているSad Macですよね。↓
ge3
実際、知らない方が幸せな、Macが故障したときにのみ現れる、レアキャラ。

GoogleにもMacマニアがいるんだな

1度だけであったことがあってLCだったかな、忘れたけど会社のMacがいきなり
キキー!!ガシャン!!というクラッシュ音と共にこの画面でした。
仕事のときにみたくないですねー。
それにしても、Sad Macってかわいいなーー!
Sad Macをiphoneの待ち受けにしてるくらい好きです。

ちなみに、自分のFlickrのアイコンは自作のSad camというキャラです。

Sad Cam
ge3







as3_ライブラリの素材から画面に表示

ライブラリの素材を画面に表示

actionscript3ではライブラリのムービークリップやビットマップをクラスとして定義できるので、通常のクラスと同じようにインスタンスを生成してaddChildで表示リストに追加します。
(※AS2のころだったらattachMovieClipでリンケージ設定したライブラリのムービークリップをステージに配置していましたけどAS3は使えません。)

クラス名を設定して↓
proas3
あとは、インスタンスを作成します。
addChildで表示リストに追加

var ballmc:MovieClip = new ball();
addChild(ballmc);

ライブラリにあるクラスが連番名などになっていて複数処理したい場合はflash.utils.getDefinitionByNameを使ってクラス名を文字列から指定します。

var carmc:Array= new Array();	
for (var i:int = 0; i<10; i++) {
  var ClassName:Class = Class(getDefinitionByName("CAR"+i));
  var carmc[i]:MovieClip = new ClassName();
  addChild(carmc[i]);
  carmc[i].x = i *100;
}

ビットマップ画像の場合はflash.display.Bitmap,flash.display.BitmapDataを使います。

var mybitmap:BitmapData = new myphoto(0, 0); //引数が2つ欲しいのでダミーで入れる。
var photoBMP:Bitmap = new Bitmap(mybitmap);
addChild(photoBMP);






ソウルシルバー

poke

ポケットモンスター。海外ではポケットのモンスターは恥ずかしい言葉なのでPOKEMON

いまさらだけど本日最新作のソウルシルバー入手!!
1999年に発売され全世界で2,300万本以上の販売本数を誇り、今作の元となったゲームボーイソフト『ポケットモンスター 金・銀』が10年の時を経てDSで復活!!

ということでポケモン好きとしては買わねばとおもっていたけど
やっと入手しました。

今回はポケウォーカーという物もセットではいってる。
なんと、万歩計になっていて、DSから赤外線で転送してポケモンを1匹だけつれて歩けるのだ。
pokewalker
いい年してポケモンと思いますが。あなどってはいけません。
ポケモンのゲームとしての作り込みは半端ないです。やり込み要素満載ではまるとやばいです。

さてさて・・・
ポケモンGETだぜ!!



3,876円 ポケットモンスター ソウルシルバー



3,876円 ポケットモンスター ハートゴールド







the earth

earth

rendered in 3ds max with v-ray

地球は、太陽系の惑星の1つで、太陽から3番目に近く、生物が生存している星である。
岩石質の「地球型惑星」に分類され、太陽系の地球型惑星の中で大きさ、質量ともに最大のものである。放射性元素による隕石の年代測定により、誕生してから約46億年経過していると推定される。

The Earth is the third planet from the Sun, and the fifth-largest of the eight planets in the Solar System. It is also the largest, most massive, and densest of the Solar System’s four terrestrial planets. It is sometimes referred to as the World, the Blue Planet.

description

テクスチャーを張ってレンダリングしただけですけど、実は、何枚かの球を重ねていて大気、雲、地表などもつくっています。
テクスチャーはこちらから
地球は本当にきれいで、海や雲が光り輝く感じがCGでは難しい。







as3_回転のアニメーション

回転のアニメーションに関係するよく使う式を2つ書いておきます。

1. 角度と半径から座標を出す方法

回転のアニメーションなどで使います。
式はこんな感じ。

x座標 = Math.cos(角度 * Math.PI / 180) * 半径;
y座標 = Math.sin(角度 * Math.PI / 180) * 半径;



角度の数値を足しながら回転をするアニメーション

サンプルコードはこんな感じです。
半径40ピクセルの円を描いてアニメーションします。x,yで最後の方で足している320と50は中心位置のオフセット値。

var rot:Number=0;
ball.addEventListener( Event.ENTER_FRAME, scrollbana );

function scrollbana( event:Event ):void{
	var a:Number = 0.15;
	var b:Number = 0.7;

	event.target.x =Math.cos(rot * Math.PI / 180)*40+320;
	event.target.y =Math.sin(rot * Math.PI / 180)*40+50;

	rot+=10;
	if(rot>360)rot=0;	
}


2. 座標から角度を出す方法

さっきとは逆で、座標から角度を調べます。
目的のオブジェクトがある方向に回転するときなどに使います。
式はこんな感じ

角度 = Math.atan2(y座標,x座標) * 180 / Math.PI;

サンプル:矢印がマウスの方向へ向きます。

ソースコードはこちら。
矢印を中心にするために、矢印(event.target)のx座標,y座標をそれぞれ引いて0基点にしてます。

ball.addEventListener( Event.ENTER_FRAME, ballrot );
function ballrot( event:Event ):void{
	var rot = Math.atan2(stage.mouseY-event.target.y  ,  stage.mouseX - event.target.x ) * 180 / Math.PI;
	event.target.rotation = rot;
}

前回のイージングでマウスに追従するのと組み合わせると



回転になると、sinとかcosとか出てきてそれだけでなんかイヤですねーーー。



Adobe Flash CS3 詳細! ActionScript3.0入門ノート2 (CD-ROM付)







as3_movieclipを動かす(減速イージング+慣性)

慣性がついてゴムで引っ張られたように戻って止まる移動。
前回の減速イージングほど使う頻度は多くないですけど知っておくと便利

基本は減速イージングと似ていますが、違いは”止まりにくい”という点です。
スピードが速ければ速いほど止まりにくい
を再現するための計算は下記のような感じで書けます。

動かしたいMC座標 +=( 目的地座標 – 動かしたいMC座標 ) * 減速係数 + 前回の移動距離 * 慣性に関わる係数

前半部分までは、減速イージングと同じです。
違いは後ろの「前回の移動距離 * 慣性に関わる係数」が今回追加している式です。
例えば前回100移動していて係数が0.3とかなら30足されます。
前回多く移動(スピードが速い)していればしているほど、目的値を余計に移動してしまうので止まりにくくなって。移動距離によっては目的値を通り過ぎてしまうこともあります。

コードで書くとこんな感じ。
(toxとtoyは目的地がはいってるものとします)

var a:Number = 0.15;
var b:Number = 0.7;
	
lastx = ( tox - event.target.x)*a +  lastx*b ;
event.target.x += lastx;
lasty = ( toy - event.target.y)*a + lasty*b;
event.target.y += lasty;     



このサンプルは、1.5秒置きにランダムな目的値に向かってます。

↑のサンプルのソースコードはこんな感じです。

ball.addEventListener( Event.ENTER_FRAME, scrollbana );
var lastx:Number=0;
var lasty:Number=0;

function scrollbana( event:Event ):void{
	var a:Number = 0.2;
	var b:Number = 0.8;
	lastx = ( int(tox.text) - event.target.x)*a +  lastx*b ;
	event.target.x += lastx;
	lasty = (  int(toy.text)  - event.target.y)*a + lasty*b;
	event.target.y += lasty; 
}


var movtimer:Timer = new Timer(1500);
movtimer.addEventListener(TimerEvent.TIMER, timefunc);
movtimer.start();	

function timefunc(evt:TimerEvent){
	var rx = int(Math.random()*640);
	tox.text = rx.toString();
	var ry = int(Math.random()*100);
	toy.text = ry.toString();
}

マウスカーソルに追従するアニメとかで良くみかけます。




Adobe Flash CS3 詳細! ActionScript3.0入門ノート2 (CD-ROM付)