正在加载...

今天突然在IE下发现用于支援”创建基于Flash技术弹性布局的Web应用程序“的Stage类表现异常。经反复测试,发现当ie下刷新页面时会造成这个问题。而根源是无法获取Stage类的width和height属性(返回0)。Firefox一切正常。

解决方案:不要在第一帧做舞台初始化(Stage Initialization)。

得到结论:

  1. 主观结论:IE是一个很垃圾,很垃圾的浏览器,包括IE7
  2. 客观结论:MovieClip的timeline机制确实不适合部署应用(Application),而更适合部署动画(Motion),至少ActionScript3之前是如此。后来我反复测试发现有很多奇怪的问题。尤其是基于frame的那些API: gotoAndPlay、gotoAndStop、nextFrame、prevFrame等等。

BTW:之前的一个项目由于对用户体验不够重视,而导致目前陷入一个很尴尬的局面。我已经连续工作了四十个小时挽回局面。看来用户体验绝对不能儿戏,尤其是对项目经理来说,千万不要忽视用户体验。并且应该给与相关开发人员足够的激励和重视。

在第一帧做loading,最好如此:

_root.onEnterFrame = function() { if (_root.getBytesLoaded() == _root.getBytesTotal() && Stage.width>10) { //do something (don’t forget to kill onEnterFrame) } }

还没找到您要的东西?Google试试看吧,
Google更注重原创、时效性好的文章:


本文相关评论: 才 5 条评论
  1. Apol 2007-03-27 09:59:04

    可怜的娃,我现在也主要做这方面工作,看来应当和你多交流了,大家都避免走弯路比较好哦。

  2. 我有话要说 2007-03-28 02:30:03

    垃圾,还会取得那么大的成功?自己的问题吧

  3. aw 2007-03-28 03:11:46

    我还是要说一次,IE确实是垃圾。垃圾成功的例子很常见啊。没什么可多说的……

  4. rison 2007-03-28 07:13:40

    onEnterFrame过一会就有值了

  5. dexter 2007-03-28 09:10:41

    没必要为这个单独折腾一次onEnterFrame的,把第一帧空出来确实不错。省掉很多麻烦。

[支持Ctrl+Enter]为了我们大家和家人的安全,留言请慎重!
声明:
1、本站仅与见过面的个人博客交换链接,见此文
2、留言时的头像是Gravatar提供的服务。如果您有兴趣并且有闲暇时间,可以看看这里的介绍