其實我不會 Flash。
GoogleMap 的這些 API,之前推出 Static Map 版本的時候就持續在研究,無奈我也不會 JavaScript,所以一直拖拖拖到現在才稍微了解了一些。其實比較容易上手的原因是,Flash API 把很多事情都簡化了,相對的,對於程序開發的自由度,就會降低許多。不過,其實這些不是重點,重點是只要能夠快速開發,我想對於我來說應該都是可用的。
我之前也說過,其實 Flash 的速度要比 JavaScript 版本來得快速,當然,如果你的電腦夠力,跑起 Static Map 應該也不會太吃力才是,不過,我的 NB 已經是四年前的產品,雖然不算舊,但是要操起這些 script 還是有一點點吃力(其實是因為 TextCube 太吃資源的關係吧)。所以說,現在切入 GoogleMap 的製作跟開發好像也只是剛好而以(其實是懶得繼續研究 Javascript 的那些 prototype 而以吧)。
雖然說,Flash API 在某些功能上可能不及 Javascript 版本那樣靈活,不過對我來說也已經夠用了。從他的 Developer Guide 上來看,其實該有的功能也幾乎都有了,只是,現在在 Flex 上開發的人,似乎比在 Flash CS3 上開發的人還要多,看他所提供的範例就知道了,幾乎都是以 Flex 為開發平台。不過由於 Flex 我真的不熟,所以只能硬著頭皮在 Flash 的 ActionScript 上動手腳。
由官方所提供的範例,應該不難入門,有些事情筆記一下以免忘記。
- 他是 ActionScript 3。
- maps.services 需要等 map 準備完成(用 onReady)的時侯才能用。
- InfoWindowOptions 的 StyleSheet 設定沒啥效果(我怎麼設定他就是不理我)。
- 要 InfoWindow 能用 StyleSheet 不如直接使用動態文字框來設定比較快。
- 地圖的座標與縮放級數,用 addEventListener 隨時追蹤,免得加了標記後再開啟卻找不到。
- 如果是傳入的座標值,要用 new LatLng() 轉過才能使用。
- 可以的話,把某些運算動作丟給 Servlet(不丟回 javascript 是因為 Actionscript 做不到,javascript 也未必可以)去處理(因為我不會 Actionscript)。
- 如果要從別的 swf 呼叫 GgoogleMap,不同的 swf,Map 原件的宣告可能要全域化(或是依狀況改寫),不然會遇到叫不到的情況(因為我是肉腳,所以會有這種狀況)。
- InfoWindow 裡面如果要用 Flash 的 UIComponent 的話,會遇到一些 bug(例如 ScrollBar 會出現 event target undefined 的狀況),原因不明,也不知道是 Flash 的 bug 還是 Google 的。
- 他是 ActionScript 3。