由 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月28日 星期四
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/
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
使用起來上都十分方便~ 如下:
下載:
http://actionsnippet.com/?page_id=1391
下載 QuickBox2D 之前, 也要下載 Box2D
http://sourceforge.net/projects/box2dflash/files/
它將 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 的寫法:
如果有 Away3D 就可以直接用 camera.screen function.
要計算出 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;
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/
加上用了 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 就可以直接使用, 如下:
範例:
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/
它將 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
用了 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.
"repeat" 屬性就相等於 "tile"
scaleX & scaleY 就相等於 mapping 的UV比例
可以看看以下範例:
Source
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";
}
}
不過要做到上下左右置正中間, 發現有點難道
橫向置中沒有問題, 不過直向置中就搞不到
問題就是 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不斷向手機市場出發,
開發易了~寫手機遊戲也變得輕鬆
AS3不斷向手機市場出發,
開發易了~寫手機遊戲也變得輕鬆
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
雖然 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砌出來的中文字
Source
//首先創造一個文字
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
訂閱:
文章 (Atom)