つい先日「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パターンは高速動作しないようです。
まとめ
・FusionでBootcampのパーティションを起動した場合は動作が遅い。(Aパターン)
・Fusionで作成したWinイメージを起動した場合は快適に動作する。(Bパターン)
FusionがあればBootcampしなくてよしっ!!
2009/5/31 - 23:48
|
Comments (0)
Category : Mac ・PC
昨日に引き続き、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;
}
}
?>
BmpをPNGに変換して送信
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));
}
これだけです。PHPの処理が適当すぎますが保存はできます。
AS3のPNGEncoderはググルとでてきます。
お手軽っすな〜?。
ダウンロードはこちらから
2009/5/26 - 23:26
|
Comments (0)
Category : FLASH AS3
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
単純に書くと上記のような処理になりスッキリします。
これは覚えておいて損はしないのでやってみました。
ほぼ公式のサンプルになってますが以下がソースです。
単純な文字列を送信
AMFデータを受取るPHPの作成
<?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;
}
}
?>
AMFデータを送信するFLASHの作成。
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に表示されます。
Arrayを送信
<?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));
}
実行すると
Hello!! HOGE,HOGE1,HOGE2,とtraceに表示されます。
このような感じでArrayも直接渡せます。
Flashからのコール(Greeting.hello)が直感的で分かりやすいのも良いと思います。
NetConnectionのところにエラー系のイベントリスナーsecurityError等を登録した方がいいかもですね。
お試しアレ。
テストファイルのダウンロードはこちら
2009/5/25 - 20:30
|
Comments (0)
Category : FLASH AS3
おぉVistaよ。ここまで腐っているとは情けない。
正確には単語は登録できるけど変換リストにでてこない。ほんっと腐ってるわ。
色んなサイト見て試したけど全く解決しないし。
IE7の問題やらあるぽいんで試したけど俺の症状はドレもコレも違ってた。
んで気が付いたんですよ。Office IME 2007が駄目なんじゃないかと!?
こいつぁーOffice入れたときに入ってたぽいけどずーっと気が付かなかったわ。
探す探すよOffice問題。たどり着いたところはMicrosoftさ。
何々?OfficeにSP1があるって?それで直るとな?
じゃー仕方ない入れてやろうとダウンロード。
速攻アップグレードっすよ。
「すでにアップグレードされています。」
( ´Д`)
さすが俺だ。やることやってたんだな?。
さて打つ手がなくなったと。。。思ったとき閃いたんだよ。
元のIMEに戻せば良いという事に。
さっそくタスクバーにあるIME Officeを右クリからプロパティやらなんやら開きまくって元のIMEに戻してやりましたよ。
そうするとアラ不思議!!普通に登録できたーーーーーーーーー!
まーここまで1時間ぐらい戦った気がする。
え?登録したかった単語?
?(^o^)/
2009/5/14 - 23:18
|
Comments (2)
Category : PC ・Win
2009/5/11 - 22:04
|
Comments (0)
Category : どっか行った ・写真あれこれ