6/30
2点から角度を求める - AS3
2点から角度を求める方法をすぐ忘れるのでメモメモ。
// e.y = 終了点 Y // s.y = 開始点 Y // e.x = 終了点 X // s.x = 開始点 X var rot:Number = Math.atan2(e.y - s.y, e.x - s.x) * 180 /Math.PI;
6/30
2点から角度を求める方法をすぐ忘れるのでメモメモ。
// e.y = 終了点 Y // s.y = 開始点 Y // e.x = 終了点 X // s.x = 開始点 X var rot:Number = Math.atan2(e.y - s.y, e.x - s.x) * 180 /Math.PI;
6/24
色々ありまして広い部屋に引越す事になりました。
仕事がばたついてて平日に片付けられないので
先週の土日でガーッと片付けをしてたら珍品がっ!!
ワンダースワンカラー!
あまりの懐かしさに片付けをほっぽりだして電源投入。
動いたぁー!!+゜*。:゜+(・∀・)+゜:。*゜+
FF1をちょっとやって満足しました。
ゲームやってる時間より写真を撮る時間の方が多かった気がします···。
グンペイやりたいなー。。。
![]() | ワンダースワンカラー本体 FF同梱版 【ワンダースワン】 バンダイ この商品の詳細を見る(AMAZON) |
6/19
ドリームで3000円ゲットー!
ミリオンは残念ながらはずれた。正直ミリオンの1万円は当たると思ってたんだけどなー。
6/14
アクション性が強い映画だったんで映画館で見てよかった!
今までの追いかけ回される感じがちょっと少ないかなとは思ったけどコレはコレで有りなのではないかな。
二人の視点からストーリーが展開していくのがよかったです。
従来のターミネーターだけじゃなくてバイクタイプのターミネーターとかでてくるのが新しいなーと思った。アーマードコア?トランスフォーマー?そんな感じのロボいっぱいです。
ストーリーはなんかありきたりな感じがしました。序盤は良かったんですけどねー。
でも、楽しめる映画でした!!
やっぱ2が一番好みだ。
![]() | ターミネーター [DVD] この商品の詳細を見る(AMAZON) |
![]() | ターミネーター2 特別編 [Blu-ray] この商品の詳細を見る(AMAZON) |
![]() | ターミネーター3 [Blu-ray] この商品の詳細を見る(AMAZON) |
5/31
つい先日「MacBookを買うぜー!!」と先輩がはりきってたので一緒に実物を見に行ってきました。
店舗に展示してあるMacを触りまくって満足したので帰ろうとしたときにVistaが動いてるMacがあったんです。
Bootcampで立ち上がってるWinと説明しようとしたらFusionで起動してるWinだった。遅いだろなーと思ったら「ええぇぇぇぇっ!!!?」って思うぐらい早かったんです。
なぜだ!!俺んちのはクソおせぇぞ!!?
メニュー辺のところを見まくると「ゲストのサスペンド」の文字が押せる状態になっていた。
その瞬間にFusionの仕様を思い出した。
ゲストのサスペンドが可能...。ということはBootcampのパーティションをマウントしているわけではないと。
Fusionの仕様の話ですが、2パターンの導入方法があるんです。
1つは、Macとは別のパーティションにWInをインストールしてFusionで起動する方法。自分のWinはこの方法で起動していました。Aパターンとします。
もう1つは、FusionでWinのイメージを作り起動する方法。店舗のWinはこの方法で起動されていました。Bパターンとします。
このBパターンなら高速なのか!?
というわけで自宅に帰って速攻でWinパーティションを削除!
(実際はここで緊急事態が発生し復旧に3日掛かった···。その瞬間は時間が止まる思いでした。)
そしてFusionでWinのイメージを作成して起動したらメチャクチャ早かった!
どうやらAパターンは高速動作しないようです。
昨日に引き続き、Zend_Amf_Serverを使ってデータ送信です。
今日はイメージの保存をやってみました。
BMP保存と書いていますが正確にはPNGとして保存するんですけどね。
イメージデータの保存がこれほど単純に作れるとは恐ろしいです。
今まであーだーこーだ思いながら作ってたのに><
PNGを保存するPHP
<?php
require_once('Zend/Amf/Server.php');
$server = new Zend_Amf_Server();
$server->setClass('Image');
$response = $server->handle();
echo $response;
class Image
{
/**
* @param string name
* @param array data
* @return boolean
*/
public function pngsave($name, $data)
{
$success = false;
if( !is_null($name) && $fp = fopen($name.".png", "w+") )
{
fwrite($fp, $data);
fclose($fp);
$success = true;
}
return $success;
}
}
?>
import flash.net.NetConnection;
import flash.net.Responder;
import com.adobe.images.PNGEncoder;
var gateway:String = "http://localhost/zend_amf_img/zend_amf_img.php";
var connection:NetConnection = new NetConnection();
var responder:Responder = new Responder(onResultHandler, onFaultHandler);
connection.connect(gateway);
var bmpd:BitmapData = new BitmapData(200,200,true,0x00000000);
bmpd.draw(this);
var imgByte:ByteArray = PNGEncoder.encode( bmpd );
// phpCall, response, 保存ファイル名, 送信イメージデータ
connection.call("Image.pngsave", responder, "filename", imgByte);
function onResultHandler(evt:Object):void
{
trace(String(evt));
}
function onFaultHandler(evt:Object):void
{
trace(String(evt));
}
Zend Frameworkが便利だと思う今日この頃です。
MVCモデルで構築できたり、コンポーネントととして扱うこともできたり。
以前からAMF通信を試そうと思いつつも色々と面倒だったんで後回しにしていたのですが、
このZend FrameworkのZend_Amf_Serverを使うと簡単にできました。
AMFはバイナリ通信(データ圧縮もされる)なので、テキストベースの通信より軽くて早いと言われています。
FLASHとPHPの通信といえばURLVariablesで、この場合ってArrayを渡すだけでも結構大変です。
・Flash Array → JSONエンコード → PHPに送信 → PHP側でJSONデコード → PHP Array
Zend_Amf_Serverを使えば、
・Flash Array → PHPに送信 → PHP Array
単純に書くと上記のような処理になりスッキリします。
これは覚えておいて損はしないのでやってみました。
ほぼ公式のサンプルになってますが以下がソースです。
<?php
require_once('Zend/Amf/Server.php');
$server = new Zend_Amf_Server();
$server->setClass('Greeting');
$response = $server->handle();
echo $response;
class Greeting
{
/**
* @param string name
* @return string
*/
public function hello($name)
{
return 'Hello! ' . $name;
}
}
?>
import flash.net.NetConnection;
import flash.net.Responder;
var gateway:String = "http://localhost/zend_amf_greeting_20090525/amftest.php";
var connection:NetConnection = new NetConnection();
var responder:Responder = new Responder(onResultHandler, onFaultHandler);
connection.connect(gateway);
// 送信データの作成
var data:String = "HOGE";
// AMF送信
// Greetingクラスのhelloメソッドを呼び出す
connection.call("Greeting.hello", responder, data);
function onResultHandler(evt:Object):void
{
trace(String(evt));
}
function onFaultHandler(evt:Object):void
{
trace(String(evt));
}
実行するとHello! HOGEとtraceに表示されます。
<?php
require_once('Zend/Amf/Server.php');
$server = new Zend_Amf_Server();
$server->setClass('Greeting');
$response = $server->handle();
echo $response;
class Greeting
{
/**
* @param array names
* @return string
*/
public function helloAry($names)
{
$str = "";
foreach($names as $key => $val)
{
$str .= $val . ",";
}
return 'Hello!! ' . $str;
}
}
?>
import flash.net.NetConnection;
import flash.net.Responder;
var gateway:String = "http://localhost/zend_amf_greeting_20090525/amftest.php";
var connection:NetConnection = new NetConnection();
var responder:Responder = new Responder(onResultHandler, onFaultHandler);
connection.connect(gateway);
var data:Array = new Array("HOGE", "HOGE1", "HOGE2");
connection.call("Greeting.helloAry", responder, data);
function onResultHandler(evt:Object):void
{
trace(String(evt));
}
function onFaultHandler(evt:Object):void
{
trace(String(evt));
}