跳到主要內容

發表文章

目前顯示的是 六月, 2009的文章

使用swfObject製作最小寬高的flash

現在大家的解悉度都超高
但一般的使用者還是以1024x768為主
在製作flash滿版設計時, 還是要顧一下一般的解悉度
當使用者的解悉度小於某個值的時候, 就讓scroll出現
這兒有一篇不錯的教學, 使用swfObject 來 embed swf
然後使用 js 來判斷最小寬高
http://www.thetechlabs.com/tutorials/flash/swfobject-and-best-practice-implementation/

或是使用swffit
http://swffit.millermedeiros.com/
都可以達到一樣的效果

js和as做好朋友

在製作專案時, 有時需讓 as 和 js 溝通
今天就來講解一下如何製作
Flash端使用
flash.external.ExternalInterface類別

ExternalInterface.call("calledFromAs3","flash called js");
這樣是呼叫 html 裡名為 calledFromAs3 的js 函式, 並把參數帶入

那如果 js 要呼叫 as 呢
在這使用swfObject來embed swf檔
然後給他一個id值為:flashContainer

flash端需先駐冊一下函式
ExternalInterface.addCallback("calledFromJs", calledFromJs);
public function calledFromJs(pStr:String):void{
trace(pStr)
}

然後在網頁就可以使用
function callAS3(var2pass){
if(navigator.appName.indexOf("Microsoft") != -1){
flashContainer.calledFromJs(var2pass);
}
else{
window.document.flashContainer.calledFromJs(var2pass);
}
}
還有沒有更高招的, 有滴
AS3 可以無中生由產生一組新的js 函式, 所以不需要事先在html加js函式
使用的方法就是把js的函式寫在as裡的xml cdata裡, 再去呼叫即可
SourceCodeDownload

trace類別 Tracer2.2版

在撰寫程式碼時, 經常會需要 trace 變數,
但如果是Object, 直接去trace他, 會得到[ Object Object]
裡面寫了那些變數, 不知道。
直接去trace一個類別, 只會得到類別的名稱
如果想要得到類別裡自定的public變數呢。
好比自定的VO(value Object)
所以奶小茶我寫了一個Tracer類別, 專門用來輸出物件裡的所有變數

<br />package { <br /> import flash.display.Sprite;<br /> import flash.text.TextField; <br /> import milkmidi.utils.Tracer; <br /> //匯入 Tracer 類別<br /> public class TracerDemo extends Sprite { <br /> public function TracerDemo() { <br /> var _vo:DemoVO = new DemoVO();<br /> //宣告自定的 DemoVO 類別<br /> <br /> var _txt:TextField =addChild( new TextField()) as TextField;<br /> _txt.width = 400;<br /> _txt.height = 400; <br /> //一個動態文字<br /> <br /> _txt.text = Tracer.echo(_vo, "這可以打其他的說明文字"); <br /> //使用 T<br /> //racer.echo( 物件:* , 說明:* ):String<br /> //在輸出面版就可以看到資訊, 也可以將回傳的文字顯示在動態文字裡 <br /> } <br /> } <br />}<br />import fla…

PV3D教學網收集區

又找到一個不錯的PV3D教學網站
如果大家也有不錯的站, 分享一下吧
jp
http://www.kyucon.com/blog/
clockmaker.jp
en
http://pv3d.org
http://ascollada.org/
tw
http://designplusplus.blogspot.com/
http://ig-max.blogspot.com/
cn
http://kevincao.com/
牛牛豬研究所
網站持續更新中, 有任何相關的網站, 也請多多提供, 一起交流

Flash10繪圖筆與產生實體圖檔

在swf裡如何產生一張實體的圖檔呢
Flash8,9就可以做到了,
但在這兒我們使用Flash10 ,
FileReference類別新增了二個主要的功能
1.能直接開啟使用者端的任何檔案(此範例是開啟swf,gif,jpg), 以後要將本機端的圖片丟到Flash裡, 就不需要像以前先upload到server, 再下載到flash
2.能將swf裡任何的畫面, 直接產生一張圖檔(或任意的格式)

PS 當有外載跨網域的swf, BitmapData不能繪製該物件, 此時就無法產生圖檔

以上二個功能都不需要伺服器端, 單Flash就做到了
在這兒製作一個繪圖筆教學,
可以上傳照片, 繪圖, 再產生一張圖檔


原始檔下載

SourceCodeDownload

Flash讀取標準時間

在許多的Event Site
有時需要放置個小時鐘, 或是做倒數計時
Flash有個Data類別能幫我們完成這樣的需求
但缺點就是只能讀取使用者的系統時間, 不夠優
最快的決解辦法
透叫伺服器端, 丟伺服器上的時間, 應該不會有人把伺服器上的時間調的不正確
那如果想要有標準時間, 然後又沒有伺服器怎麼辦?
找到了一個提供世界的標準時間網站:
我們選擇台北:
http://www.timeanddate.com/worldclock/city.html?n=241
中間就有一段是標準時間, 好的, 接下來就使用Flash來載入該網頁
並解悉成我們需要的文字。





整個網站, 我們需要的字串是長成這樣
Monday, June 15, 2009 at 12:23:54 PM
此時就可以使用AS3的RegExp類別來幫我們過濾。
之後再將得到的文字, 想辦法垂組成Data類別看的懂的格式
最後再用Timer來自已開始跑, 就決解啦。
完整程式碼:
<br />package {<br /> import flash.display.Sprite; <br /> import flash.events.Event;<br /> import flash.events.TimerEvent;<br /> import flash.net.URLLoader;<br /> import flash.net.URLRequest;<br /> import flash.text.TextField; <br /> import flash.utils.Timer;<br /> public class RegExpDemo extends Sprite { <br /> private var _timer :Timer = new Timer(1000);<br /> //計時器, 當抓到標準時間一次後, 就自已跑計時器來計算時間。<br /> private var _regTime :Number;<br /> //從1970到標準時間的毫秒差<br /> private var _txt :TextField;<br /…

OpenOpenFlartoolkit

YES,台灣也有Flartoolkit的作品了喔
而且是跟Open將合作, 真可愛
http://www.openopen.com.tw/event/09shanghai/section2.html
要先列印Pattern,然後準備一個webcam
就可以開始玩了啦

PV3D Big and Small

Plug-In Media公製為了一個兒童節目製作了Big and Small網站, 全3D互動操作, 有點像是去年大紅的Eco Zoo
但這次這次是使用Papervision3D engine, 因為開發者Seb Lee-Delisle本身就是Papervision3D的開發小組成員之一。
技術面來看的話, 滿多東西可以討論,
主要都是解決Flash3D開發中會遇到的問題
See Lee-Delisle blog中有供到滿多的點, 很值得研究

mq.shiseido心機專館新品上市

資生堂心機專館新品上市
http://mq.shiseido.com.tw/#/newsproduct200906/



這次換新美美的新代言人,土屋安娜
有一種很特別的個性美。
技術上因為shiseido是使用AS2在製作, 但又想要有3D效果
所以把PV3D AS2版拿出來練習一下, 效能還不錯也
分享原始碼, 一起學習吧。

SourceCodeDownload