blog.Ring.idv.tw

Articles

Papervision3D - 五分鐘上手

Papervision3D.是一個針對Flash的開放源始碼3D引擎~ 想要在Flash中直接就產生一個3D Model~ 或是想要將3D軟體(3D Max or Maya)所建好的Model整合到Flash之中~ 那就不得不來玩玩這一套~ 最近熱的發燙滴「Papervision3D」~ 從去年一直火燒屁股滴直到今年還在燒 XDDDD~ 所以我也從去年一直觀望到現在~

今天就來給它玩玩看~ 本篇主要參考「Peter Elst » Papervision3D in 5 minutes」:

五分鐘上手Papervision3D

1. 先到「Google Code - Papervision3D」來下載並安裝「PV3DComponents_v1.5.1.mxp」這個Adobe Extension

(如果無法順利安裝的話~ 有可能是沒有裝Adobe Extension Manager或是版本較低的問題,請先裝上它吧~)

2.開啟Flash,並建立一個空白的FLA

3.接著從Components panel(Ctrl+F7)拉一個「COLLADA Scene」元件到Stage中,並給它一個instance name叫「scene3D」

4.然後下載「cube.dae」這個由Peter Elst所提供的Cube Model

5.接著開啟「Window > Other Panels > PV3DPanel」,並設定Local Directory、Collada File的位置,也就是你剛剛下載cube.dae的檔案位置。

6.開啟「File > Import > Import to Library」來匯入一張影像作為材質貼圖

7.將這張位於Library之中的影像,設定它的Linkage ID,筆者設為「ring」

8.點選剛剛拉到Stage之中的「COLLADA Scene」元件,並設定它的元件參數設定,主要設定「Materials List」這個屬性值~ 點選後請將「materialName」設為剛剛那張cube.dae的名稱為「CubeMaterial」,以及「materialLinkageID」設為剛剛的「ring」

9.最後在第一個影格上加上下述程式即可

function rotateCube(evt:Event):void
{
	scene3D.collada.rotationX += 1;
	scene3D.collada.rotationY += 1;
	scene3D.collada.rotationZ += 1;
}
addEventListener(Event.ENTER_FRAME, rotateCube);

10.接著就開開心心地發佈吧~ ^^

相關產品

Sandy 3D

2008-04-04 18:04:58 | Comments (3)

離職了...

雖然今天是「愚人節」~ 不過呢~ 我真的離開了待了將近三年的旅行社~

打從2005年07月19日開始的第一天上班~ 直到今天~ 另一個階段又即將開始~

未來~ 有些不確定性~ 有可能落腳於「ITRI」~ 而且每個禮拜至少要跑新竹兩趟以上~

我想~ 這樣的不確定性一直要到下半年才會穩定~

2008-04-01 18:00:01 | Comments (6)

再次挑戰2008...

今天報名了「2008 中華電信加值大賽」~ 下禮拜一將會送出我們的參賽企劃書~

隊伍名稱:B兔G

作品名稱:iLove 我要我們宅一起

隊伍介紹:「B兔G」是一個結合資訊工程、多媒體設計以及美術系為背景的隊伍,而我們的目標只有一個,那就是「從賀董事長的手中接下冠軍獎盃」。

哈哈~ 這個目標應該是每個人的目標吧~ XDD

2008-03-29 19:43:10 | Comments (2)

追風箏的孩子 - The Kite Runner

今天逛了一下誠品~ 突然看到前天晚上大夥一起去看的一部電影...

追風箏的孩子 - The Kite Runner.全球暢銷六百萬冊同名小說所改編的,描述一段真摯的友誼,卻衍生出悲慘不堪的事件,而他為了贖罪,即將踏上二十多年前的故鄉...

總之值得進電影院看~ 將會看到那位小男孩的成長~

內容簡介

引用來源

故事從一對小男孩的親密友誼開始。12歲的富家少爺阿米爾與僕人哈山,從小一塊長大,年齡相仿的兩人情同兄弟,總是一起玩耍,一起分享有趣的故事。
然而,在一場風箏比賽後,發生了一件悲慘不堪的事,永久破壞了兩人之間的情誼,從此各自走上不同的人生道路,可是最後卻也以兩人始料未及的方式,重新連接起彼此的關係。

即使阿米爾不久跟隨父親逃往美國,以為可以因此逃避過去的自己,但關於哈山的回憶一直縈繞不去。
阿米爾感到非常愧疚,無法原諒自己當年對哈山的背叛與懦弱的行為。
為了贖罪,阿米爾終於再度踏上暌違二十多年的故鄉,希望能為不幸的好友盡最後一點心力……

這是一個關於背叛的代價、贖罪的可能的故事,也是一個關於父親對兒子影響的故事——包括父親對兒子的愛、奉獻與謊言。
小說背景也涉及了阿富汗過去到目前的狀況,讀者也得以從本書一窺這個神祕國度。

2008-03-29 18:47:38 | Comments (2)

跨網域請求(二) - Flash Plug-In

本文接續著「跨網域請求(一) - Cross-Domain Script Tag」來繼續實作另一種透過Flash Plug-In的作法~

這種作法最大的缺點就是需要仰賴一個Plug-In的方式~

但隨著Flash Player Statistics所統計全世界可上網的電腦有安裝Flash Player就達到98.8%~ 所以此缺點看似影響並非太大~ 端看客官們如何取捨~

下述範例「flash.php」、「crossdomain.xml」須放在同一個網域之下

flash.php

<div><?=rand()+rand()?></div>

crossdomain.xml

這個「crossdomain.xml」須放置在根目錄下

<?xml version="1.0"?>
<cross-domain-policy>
   <allow-access-from domain="*" />
</cross-domain-policy>

ActionScript 3

這裡的ActionScript範例會執行外部的資源請求,並將請求所得到的值利用ExternalInterface呼叫「callJS()」的JavaScript,有興趣的人玩玩看吧~

var loader:URLLoader = new URLLoader();
sendRequest();
function sendRequest():void
{
	var request:URLRequest = new URLRequest("http://163.17.142.204/csproxy/flash.php?"+Math.random());
	request.method = URLRequestMethod.GET;

	loader.dataFormat = URLLoaderDataFormat.TEXT;
	loader.addEventListener(Event.COMPLETE, loader_complete);
	loader.load(request);
}
function loader_complete(e:Event):void
{
	var example:RegExp = new RegExp(/<div>(.*)<\/div>/);
	var trans = example.exec(loader.data);
	ExternalInterface.call("callJS",trans[1]);	
}

JavaScript

function callJS(result)
{
	alert(result);	
}

2008-03-29 01:32:32 | Add Comment

Next Posts~:::~Previous Posts
Copyright (C) Ching-Shen Chen. All rights reserved.

::: 分類 :::

::: 最新文章 :::

::: 最新回應 :::