2010年1月28日 星期四

Blender AS3 Library

由 Papervision3D 的 core developer Tim Knip 寫成的 AS3Blender Library - 可以讓 Blender export 出來的 .blend file 直接給 Flash 使用
它 使用 Embed 的方法, 再call 一個 blend file parser 就可以 load 3D model to flash.

Details:
http://drawlogic.com/2010/01/27/asblender-library-to-use-blender-files-directly-in-flash/

2010年1月25日 星期一

Alternativa3D 教學

Wonderfl 自家出的 Alternativa3D 教學 (日文) , 有齊 source code
Alternativa3D 是 Flash 3D Engine 之一
Performance 不比 Away3D 差
有分 商用版及免費版

Wonderfl 教學:
http://marubayashi.net/tips/alternativa3d/

Alternativa3D:
http://alternativaplatform.com/en/alternativa3d/

2010年1月22日 星期五

AS3 QuickBox2D Library

QuickBox2D 是 簡化版的 Box2D
它將 Box2D 的 Code 整合~再提供一個簡單的 API
使用起來上都十分方便~ 如下:

            var sim:QuickBox2D = new QuickBox2D(this); 

            sim.setDefault({fillColor:0x00CC22, lineAlpha:0.5, radius:1.5});
            sim.createStageWalls();
 
            sim.addBox({x:5, y:5, width:1, height:1});
            sim.addCircle( { x:4, y:8, radius:2 } );

            sim.start();
            sim.mouseDrag();


下載:
http://actionsnippet.com/?page_id=1391
下載 QuickBox2D 之前, 也要下載 Box2D
http://sourceforge.net/projects/box2dflash/files/


2010年1月19日 星期二

Away3DLite: 3D Coordinates to 2D Coordinates

這個在寫 3D Application 時常用的技巧
要計算出 3D Object 在 screen 的 2D position. 

Away3DLite 的寫法:
public function calc2DCoords(screen_element:*):Point
{
    var posn:Vector3D = screen_element.viewMatrix3D.position;
    var screenX:Number = posn.x / posn.z;
    var screenY:Number = posn.y / posn.z;
    return new Point(screenX+screenW_offset,screenY+screeH_offset);
}

如果有 Away3D 就可以直接用 camera.screen function.

2010年1月18日 星期一

Papervision3D XML CoverFlow Source

 Cover 雖然已經不是新鮮, 不過都分享一下 Papervision3D 寫成的 Cover Flow 教學
加上用了 XML 讀取圖像,  十分方便易學

可以去以下連結下載 Source Code: 
http://papervision2.com/adding-xml-to-the-papervision-coverflow/

2010年1月17日 星期日

Gordon: An open source Flash™ runtime written in pure JavaScript

一個 純 Javascript 的 Flash runtime. 即是瀏覽器沒有 flash player plugin 也可以 play swf file.
它將 Flash 內容再變成 SVG, 這樣就可以不用 Flash Player 也可以看到 Flash

加了一句 Javascript 就可以直接使用, 如下:
onload="new Gordon.Movie('blue.swf', {id: 'stage', width: 500, height: 400})"

範例:
http://paulirish.com/work/gordon/demos/

Source:
http://github.com/tobeytailor/gordon/

的確是有趣的 Project , 不過...我測試看看~~ 實在很慢, 也不能完全支大多數瀏覽器, 至少 IE 不完整支援, 現在只可以做簡單的 Flash Animation 及 Button

轉自:
http://drawlogic.com/2010/01/13/gordon-an-open-source-flash%E2%84%A2-runtime-written-in-pure-javascript/

2010年1月16日 星期六

AS3 Event.Added 與 MovieClip goto Frame 之錯誤使用

最近打算自己整一個 ScrollPane
用了 Event.ADDED & Event.REMOVED 來計算最新的高度
在 ScrollPane中, 有 MovieClip 的物件
當我在 MovieClip 上使用 gotoAndStop(2), 發現了會 dispatch Added & Removed Event
一陣子研究之下, 發現原來 當 MovieClip change frame 時 timeline frame 入面的東西
也會不斷 add & remove

範例:


Source

Away3D Texture Mapping Learning

與 Papervision3D 完全不同的寫法, 不過一樣簡單

Away3D 如要使用 Texture Mapping 就要使用 TransformBitmapMaterial
e.g.
material = new TransformBitmapMaterial(Cast.bitmap(headBmp), { repeat:true, scaleX:.5, scaleY:.5 } );

"repeat" 屬性就相等於 "tile"
scaleX & scaleY 就相等於 mapping 的UV比例

可以看看以下範例:


Source

2010年1月9日 星期六

embed swf 網頁置中問題

相信大多數人都會使用 javascript 的 swfobject.js 去 embed swf
不過要做到上下左右置正中間, 發現有點難道
橫向置中沒有問題, 不過直向置中就搞不到

問題就是 embed swf 是來自 javascript 加入 div
所以要解決問題, 都要用 javascript

以下是個解決方法:

    if (window.addEventListener) {
        window.addEventListener("resize", windowResizeHandler, true);
        window.addEventListener("load", windowResizeHandler, true);
    }
    else if (window.attachEvent) {
        window.attachEvent("onresize", windowResizeHandler);
        window.attachEvent("onload", windowResizeHandler);
    }
   
    function windowResizeHandler(event) {
        var myWidth = document.body.clientWidth;
        var myHeight = document.body.clientHeight;
   
        if (myWidth > 970) {
           
            document.getElementById("container").style.left = Math.round((myWidth - 970) * .5) + "px";
        }
       
        if (myHeight > 625) {
            document.getElementById("container").style.top = Math.round((myHeight - 625) * .5) + "px";
        }
    }

2010年1月6日 星期三

Flash Player 10.1 on Google's Nexus One Phone

Flash Player 10.1 終於可以在手機面世
AS3不斷向手機市場出發,
開發易了~寫手機遊戲也變得輕鬆

Away3DLite Mario3D Model

最近用了Away3DLite做了個測試看看 Performance
結果都不錯~~ 非常易用及方便



Away3DLite Source Code
Source

2010年1月5日 星期二

Flash Player 10.1 Beta AS3 Microphone Record and Play

遲了的測試~
雖然 FP10.1 還在Beta當中, 要開Browser做Testing
做了以下一個幾有趣的一個 Demo

需要預備: Flash Player 10.1 & Microphone

1. 首先~Click "Start Record" 開始錄音
2. 錄下一秒左右的單音~之後 Click "Stop Record & Play"
3. 就會播放一段短歌曲 (由錄下來的聲音唱出的)



Source

要成功執行需要下載兩個 Library source code
1. minimalcomps
2. SiON Sound Driver

2010年1月1日 星期五

2010虎年快樂!!!

送個Effect給大家, 點點Pixel砌出來的中文字

//首先創造一個文字
var tf:TextField = new TextField();
tf.text = "Hello World";

//之後再打散成BitmapData
var bd:BitmapData = new BitmapData(tf.width, tf.height, false, 0xF2D8FF);
bd.draw(tf);

//每一點進行運算
for (var i:int = 0; i < bd.width; i++)
{
   for (var j:int = 0; j < bd.height; j++)
   {
        // 創造任何東西都可以啦 
   }
}



Source