c/c++がFlashで動くAlchemyをWindowsで

なんともすばらしいc/c++Flashで動くAlchemyWindowsでやってみました。
Alchemyのサイト
自分の環境

cygwinのインストール

Windows向けにはcygwin用のAlchemyが用意されています。
ってことでまずはcygwinをインストールします。
cygwinのインストールは簡単でsetup.exeから簡単にセットアップできます。
cygwinsetup.exe
Alchemyするのに必要なライブラリ(README.cygwinより)は

-perl
-java
-zip

っとのことなので、ポチポチ選択します。

perl    ⇒ perl
Devel   ⇒ gcc-g++
Archive ⇒ unzip
Archive ⇒ zip

AlchemySDKのインストール

次にAlchemySDKのダウンロードとセットアップ。
まずはAlchemySDKをダウンロードしてきます。
Download the Alchemy Toolkit for Cygwin on Windows (ZIP, 37.2 MB)
次にセットアップ
cygwinを起動し以下のコマンドを書きます。

$ unzip alchemy_sdk_darwin_p1_111708.zip -d AlchemySDK //解凍はWindows上でしといてもOK
$ cd AlchemySDK
$ ./config
$ source alchemy-setup
$ alc-on //逆はalc-off

Alchemyの使い方

とりあえずサンプルが用意されているのでそれを使用します。
コンパイル

$ gcc HelloFlash.c

実行

./a.exe

swcの作り方

gcc stringecho.c -Wall -swc -o stringecho.swc

stringecho.swcが作成されるのでここからは通常通りにFlexから使用できます。
以下のように配置すれば認識してくれます。

ソースはこんな感じ

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
     creationComplete="alchemyTest1()"
    >
<mx:Script>
<![CDATA[
import flash.display.Sprite;
import cmodule.stringecho.CLibInit;
public function alchemyTest1():void{
    var loader:CLibInit = new CLibInit;
    var lib:Object = loader.init();
    myText.text =lib.echo("foo");
}
]]>
</mx:Script>
<mx:Text id="myText"/>
</mx:Application>

来年はc/c++とpixel benderですなー。

Adobe MAX関連をまとめてみた。

Adobe MAX関連がちょっと多いのでせっかくなのでまとめてます。
もし海外のめっちゃ最新情報を読みたい方はこちら
Google Blog Search 「Adobe MAX」
GoogleReader+翻訳でそれっぽく読めると思います(^−^)

Matrix3Dで3D回転+回転中心点の変更

最新のFlexSDK3.2でMatrix3Dが使えるようになっていたので勉強がてら使ってみました。
こんな感じ
http://moeten.info/flex/20081120_matrix3Dtest/bin-release/main.html

Matrix3Dはなんといっても回転の中心が設定できるのが便利(^o^)
回転点を変更するには Matrix3D.appendTranslation() を使用します。
いったん画像をずらして回転して元にもどすと画像の中心などから回転することができます。
ちょっと面倒だけどよく使うので覚えておいて損はないです。

//回転中心点をずらす
mat3D.appendTranslation(-myCanvas.width/2,-myCanvas.height/2,0);
//回転
mat3D.appendRotation(nRotationX, Vector3D.X_AXIS);
mat3D.appendRotation(nRotationY, Vector3D.Y_AXIS);
mat3D.appendRotation(nRotationZ, Vector3D.Z_AXIS);
//中心点をもどす
mat3D.appendTranslation(myCanvas.width/2,myCanvas.height/2,0);

参考リンク

ソースはこちら

続きを読む

今日気になったページ

drawTrianglesとUVマッピング #3
XYな画像をUVでマッピング。テクスチャの基本なので覚えて損はないかも。
携帯Flashサイトデザイン入門―Flash Lite「1.0」「1.1」対応 (I/O BOOKS) (単行本)
そろそろ日本の携帯もRIA化しないと。ってFlash Lite 3.0の時代はいつくるのだろうか・・・。
AIR1.5
超最新版のAIR1.5のオライリー本。海外ではMaxに合わせてすでに販売されているようです。