flex 开发Google map的周记

最近花了一周的时间在flex的编程上,从FlexBuilder 3 Flashbuilder 4一周的时间,从试用到疯狂地爱上新平台,新技术。

FB4上的flex编程变的十分高效,部分代码的自动生成,debug功能的优化,UI设计的便利,远程调度和访问数据的智能模块,以及FlexUtil的测试功能等等,这些都令到我们这些开发者兴起若狂。

这周主要的工作是利用FB4结合google map api 进行开发。这点倒不难,整个过程都是在事件驱动开发,即是主要编写响应事件的函数。然而,在开发中,我却一直饱受OO思想的折磨----怎样才能更好地实现代码的重用,从而提高开发的效率呢?然而,这却是肤浅的想法。

在开发google map的地图图层上想实现右键弹出自定义菜单的功能,结果发现,flash上本来就有系统的右键菜单,而且是只能在其基础上增加子选项。本着将就一下啦,不料,google map上的地理标志marker(那些地图上的小泡泡)居然没有系统的右键菜单。原因是

google map本来就是flash舞台上的一个元件,但是上面那些marker却不是flash上的元件,只是map里头的一部分而已。这就悲剧了,设计中的右键菜单包括点击marker右键弹出菜单的效果呢!那,有问题找谷老师,网上有的牛人,居然用到屏蔽原来系统的右键菜单,然后用javascript来实现右键菜单,再通过flex来回调javascript的函数。晕,本人的技术还没到“牛”的地步呢。只好苦思其他解决方案。

后来,就用单击左键弹出菜单的方法来实现,还真不过那些弹出的菜单是用PopUpManeger调用自定义的compent来实现的,这也体现了模块化设计的思想(*^__^*)…嘻嘻

在弹出菜单里头包含了一个显示html功能的模块,那当然就是用iframe来实现的了,可是里头有一个十分奇怪的问题,iframe使用相对路径来访问html文件,一切的测试在firefox上都没问题,但到IE上就显示不了html的内容了,网上也有同样的案例,无赖之下,只好改用远程调用的方法,即http//127.0.0.1:8080/*****,结果通过,真是奇怪….不过最后还有新问题出现,flex里的iframe装载html页面时会出现相对定位错误,即iframe会偏离装载它的容器,而且是在现在流行的浏览器上跑都会这样。

最后还有flash安全沙箱问题,在FB4,或以前的IDE里头开发flex应用,一点击就可以运行,可是把工程released到其他地方去,就要小心安全沙箱的问题了。网上说要在包含flash的那个页面上手工加上标签<param >,可我试过了不行。后来知道了沙箱的部分原理,就从根本上解决了。在flashplayer的受信名单上加上flex应用程序的绝对路径。其实这也可以完全使用FB4或其他IDE来自动配置,它完全是自动的。

你可能感兴趣的:(JavaScript,编程,Flex,Google,Flash)