_root第一帧下Stage类信息丢失

今天突然在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) } }

Advertisements

5 thoughts on “_root第一帧下Stage类信息丢失

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.