在玩Flash或Flex時,常常會遇到一個現象:明明檔案是放在電腦裡,可是卻常常受到Flash Player的安全性限制,存檔、讀檔等功能非常不便。這和我原本想像Flash可以開發應用程式的想法,有相當大的落差。
關於這個問題,我有試著問過 Ticore 大大,連結:http://ticore.blogspot.com/p/discuss-comments.html
其實官方網站上寫的很詳細~遇到有這方面需求的 Flash 應用程式,最好的解決方法是用AIR開發。AIR結合了HTML、JavaScript 及 AS3 這幾種技術於一身,就如同網路應用程式一般,AIR開發並不困難,用現有的 Flash 或 Flex 就可以寫,但這不是我所要的。首先,AIR的應用程式完成之後,若要使用,需要安裝;安裝之後如果不滿意還得移除。而且有時候,我們是要取SWF豐富方便的動畫設計概念來應用於原本的作品上以達到加分效果,但是要開發一個應用程式,用SWF檔單獨執行,就像被一個容器隔絕了。
Adobe AIR 2.6 執行時期可讓開發人員使用 HTML、JavaScript、Adobe Flash Professional 軟體和 ActionScript 來建立網路應用程式,可當成獨立用戶端應用程式執行,不受瀏覽器的限制。
一定要安裝,它是應用程式,需要經過 User 同意~
因此,我想到ExternalInterface這個類別,可以與諸如Visual Basic溝通,而Visual Basic中,正好有這麼一個控制項可以使用。
真是不錯的解決方法,用Visual Basic先寫好核心,再利用ExternalInterface中的FlashCall呼叫函數,便可以與外界溝通了!
此外,flash.system套件中也有個類似功能的 fscommand() ,應該是為了相容性而存在的,只能傳送文字的引數,不過應該也夠用了。
於是,腦袋裡就浮現了靈感:外部的 Flash Player。綜合上面各種理由,大膽提出計畫,先將Visual Basic的外殼做好,再把.swf影片塞進去不就得了?如此一來,Flash所沒辦法做到的:設定視窗標題、顯示視窗在最上層、邊框樣式、滑鼠游標、拖曳處理、Alert(Msgbox)、視窗圖示、功能表、透明度......全都有了解套,全都有了更好的選擇。不用跑AIR就可以輕鬆完成!
更令人興奮的是,Visual Basic和Flash似乎可以分開成兩部分來完成,如此一來在大專案上面就更有效率了!
下面是我列出最基本的程式碼(附說明),可以給大家參考一下:
Visual Basic開啟了一道橋樑通往Flash!但是,這個做法也有點美中不足的地方:第一,使用者必須要有Windows的作業系統(這問題不大,大部分電腦都是Windows);第二,使用者要已經裝好 .net Framework 4.0 (雖然Vista/7都已經列為標準安裝項目了,但對於廣大XP使用者而言,並不十分友善);第三,我原本想用VB6去做,但是做好存檔時竟然出現了莫名其妙的錯誤,無法解決,VB2010是.net的一部份,勢必會造成系統效能的挑戰,畢竟原本立意是在「簡單、方便」的想法去設計。
看來這些問題需要時間解決,但是我相信瑕不掩瑜xD。這不失為一個有趣的想法。
接下來,就需要設定一些預設指令,讓設計Flash的人也可以一頭栽進以Visual Basic為主的視窗應用程式研究。分成兩方面來說好了,一部份當然是自行設計Visual Basic和Flash;另一部分是呼叫我已經定義好的自訂指令。想到這部分就是我第一個可以發布的程式,不由得興奮起來...
最後,我想放上一張和Adobe Flash Player類似(應該算是模仿吧)的程式,我預計把它取名叫External Flash Player, EFP。當然,預設指令是還沒有做好,但在聯測後,大概就會有一堆時間做了吧!!哈哈哈哈...請拭目以待吧!
沒有留言:
張貼留言