ActionScript 3.0 , AIR , FLEXからCocoa, OpenGL, WPF, Silverlightも。


  • JpgEncoderの非同期版やってみた。(前に)

    えっと、実はすごい前に作っていたので今は誰か作っているのかもですが、
    adobeのcorelibにある、JpgEncoderの非同期版を作ってみました。
    http://www.hi-farm.net/labs/modJPGEncoder.as.zip
    ライセンス的に大丈夫だという判断で公開ですが、まずそうでしたらすぐに取り下げますのですみませんが、ご連絡下さい。
    使い方は、
    1. corelibのJpgEncoder.asを解凍したファイルに差し替えて下さい。
    コードではこんな風にして下さい(サンプル:画像保存のAIRアプリ)
    <?xml version=”1.0″ encoding=”utf-8″?>
    <mx:WindowedApplication xmlns:mx=”http://www.adobe.com/2006/mxml”; layout=”absolute” creationComplete=”initApp()”>
    <mx:Script>
    <![CDATA[
    import com.adobe.images.JPGEncoder;
    import flash.events.*;
    private var jpg:JPGEncoder;
    private function initApp():void
    {
    btn.addEventListener(MouseEvent.CLICK, clickHandler);
    }
    private function clickHandler(e:MouseEvent):void
    {
    //--- 
    jpg = new JPGEncoder(100);
    //--- 処理中のイベント
    jpg.addEventListener("progressing", progressHandler);
    //--- 処理完了のイベント
    jpg.addEventListener("finished", finishedHandler);
    var bmpdata:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, false);
    bmpdata.draw(stage);
    jpg.encodeAsync(bmpdata);
    }
    private function progressHandler(e:Event):void
    {
    var percent:String = new int((jpg.cur/jpg.maxCur)*100).toString() + "%";
    ti.text = percent;
    }
    private function finishedHandler(e:Event):void
    {
    ti.text = "convert finished.";
    //-- 終了したら、ファイルに保存する。
    var f:File = File.desktopDirectory.resolvePath("out.jpg");
    var fs:FileStream = new FileStream();
    fs.open(f, FileMode.WRITE);
    fs.writeBytes( jpg.ba, 0, jpg.ba.length);
    fs.close();
    }
    ]]>
    </mx:Script>
    <mx:VBox>
    <mx:TextInput [...]

  • astro練習

    取りあえず、flash player10 astroの練習をしてみました。
    標準で3Dの機能がついたので、ひとまずちょっとしたサンプルを作成しました.
    http://www.hi-farm.net/astro/main.swf
    処理がかるくなるのかな?と思ってたのですが、Macのアクティビティモニタで見てみると、
    今までの様にPapervision3Dを作った時と、重さがあまりかわらない気がしたんですけど、どうなんでしょう?
    ソースはこれ。
    main.as—————————————-
    package
    {
    import flash.events.*;
    import flash.display.*;
    import flash.ui.*;
    [SWF(backgroundColor="0x000000", frameRate="50")]
    public class main extends MovieClip
    {
    private var container:Sprite;
    private var rect_vc:Vector.<Rect>;
    private var len:uint = 6;
    private var radius:Number = 100;
    private var container_vc:Vector.<Sprite>;
    private var innerLen:uint=15;
    public function main ()
    {
    init();
    }
    private function init():void
    {
    container_vc = new Vector.<Sprite>();
    container = new Sprite();
    container.x = 150;
    container.y = 10;
    addChild(container);
    rect_vc = new Vector.<Rect>();
    for( var i:uint=0; i < innerLen; i++ )
    {
    container_vc[i] = genCircle(0, 30*i+10,15*i);
    container_vc[i].rotationY [...]

  • ほんと久しぶりですが。

    記事書くのをほっぽらかしていました。
    僕はというと、3月から東京へ引越して、会社員はじめたのですが、そこでは今までやっていた、ASに加えて、WPFとかSilverlightも始めました。
    で、会社のことはなかなかかけなか [...]

  • 履歴とheader(”Location: —”);

    最近(というか昨日)、名古屋ちょい絶発表会 vol.2があり、AIRのHTML使ってみましょー、ってなことをやってたのですが、
    その後触ってて、ちょっとメモ。
    mx:HTMLのid=”browsing”
    とすると、
    履歴を取るんだったらこんなんでしょうか?
    <?xml version=”1.0″ encoding=”utf-8″?>
    <mx:WindowedApplication xmlns:mx=”http://www.adobe.com/2006/mxml”; layout=”absolute”>
    <mx:Script>
    <![CDATA[
    import mx.events.FlexEvent;
    private function init():void
    {
    //履歴をtrace()で出力してみる
    browsing.addEventListener(Event.LOCATION_CHANGE, function():void{
    trace(browsing.location);
    });
    }
    private function changeLoc(e:FlexEvent):void
    {
    browsing.location = e.target.text;
    }
    ]]>
    </mx:Script>
    <mx:VBox>
    <mx:HBox>
    <mx:Button label=”&lt;” click=”browsing.historyBack()” />
    <mx:Button label=”&gt;” click=”browsing.historyForward()” />
    <mx:Button label=”reload” click=”browsing.reload()” />
    <mx:TextInput id=”urls” enter=”changeLoc(event)” />
    </mx:HBox>
    <mx:HTML id=”browsing” width=”500″ height=”700″ />
    </mx:VBox>
    </mx:WindowedApplication>
    で、僕の経験不足+知識不足なのでしょうけど、ブラウザに履歴を残さずに移動するには、PHPなら、
    header(”Location: http://sample.com”;);
    とか書いておけばいいってきいたんですけど、AIRで作れば、上の方法で履歴をとれば、headerでも履歴を残せます。
    例えば、試しに。
    http://www.hi-farm.net/labs/location.php
    これは
    <?php
    header(”Location: http://www.hi-farm.net”;);
    ?>
    ってだけ書いているファイルで、
    上にかいたコードを使ってみると、
    http://www.hi-farm.net/labs/location.php
    http://www.hi-farm.net/
    って出力されます!!
    これって普通ですか?
    2008年2月17日01:01

  • MODxのWayfinderとDitto

    メモ。
    一番上の階層のIDを指定する時に、startIDというのがあるが、
    Ditto => startID,
    Wayfinder => startId
    微妙に大文字小文字が違うようだ。。
    統一しようよ。。
    [...]

  • PearのFile/Archive.phpをMODxで

    ちょっと料理名っぽいですが。
    MODxをちょい前から使っているのですが、このMODxは動的にサイトを見せることも可能だし、静的HTMLのエクスポートも可能。
    で、今回は、MODxはサイトのジェネレータとして使う事を考え、 [...]

  • MAMPをセットアップ、PHPMyAdminでつまづく

    今月はオフィスを離れて仕事をする事が増えるだろう、ということで、メインマシンである、MacBookで移動中も開発すべく、ローカルにMAMPをインストール。
    で、PHPMyAdminの画面を開いても、エラーがでる。
    『#2 [...]

  • GoogleMap IEで起きたエラーの件

    前の記事にも書いたのですが、最近jsをちゃんと触り始めました。
    で、Googlemapを使うという仕事があったのですが、IEのみで、『たまに』マップが表示されない事があるという事が起こりました。
    エラーを見てみると、
    『 [...]

  • まずはWcan でmini as 4

    土曜日は、名古屋でWcan mini as がありました。
    Gainerのお話しやら物理エンジンの話しなど、刺激になることが多くて行ってよかったです。
    で、そこで地味に僕も発表しました。
    AIRでパラパラマンガっていうテ [...]

Weclome to Hi-farm blog.

Here's where you add a little blurb about yourself and your site. For the latest information on the Upstart Blogger Modicus theme, visit WordPress Theme: Upstart Blogger Modicus. You can delete this text by editing the index.php file in the Modicus theme folder.

FRESH / LATEST POSTS