前些年做浏览器的时候经,常会遇到客户提出不同的浏览器界面,甚至是一些特殊控制方式的要求。 但由于当时gui和浏览器内核耦合度比较高,所以改动的多了维护起来自然就比较麻烦了,当时就有一个愿望,如果使用flash作为开发浏览器的GUI,借助flash强大的界面表现能力来开发浏览器外壳。这样就可以在一些嵌入式设备上,灵活的开发个性化浏览器界面。这正好和后来的adobe AIR StageWebView不谋而合。
最近有机会接触了开源的浏览器引擎webkit, 自己顺便花了些时间实现当初的这个愿望(不过浏览器内核却换成了如今的webkit, AIR StageWebView 使用的同样是webkit).
下图是我在adobe flash cs3里 随便拖了几个按钮 生成的swf文件(相信专业的flash设计师会设计出非常酷的浏览器),用内嵌了webkit的flash播放器打开的效果。
为了让flash更方便的控制浏览器,在实现上:
1.将webview绑定到了movieClip上而不是独立的对象,这样可以直接使用movieClip的as方法对webview进行外观控制如:位置,大小,深度等。
2.增加了更灵活的控制webview的as方法,属性和事件监听器。
3.统一了webkit和flashplayer的底层渲染,这样可以保证从外观上使网页和flash尽量一致。
目前的这个版本集成的还比较粗糙,毕竟个人精力有限,大部分的时间要忙工作。下一步还有很多的问题需要考虑和处理,例如网页内的flash动画和html5视频我是想:由webkit提交swf地址给浏览器外壳flash,然后由外壳flash在指定区域或全屏使用loadMovie加载播放或者交由平台播放视频。更重要的问题是这个东西难道只能自己玩玩而已?