Firefox3.0.x奇怪的版本bug,版本判断意义重大

刚才用jQuery的$.browser检测浏览器版本的时候,发现我的Firefox返回了“1.9.0.3”,而使用JavaScript的原生API,用Navigator对象检测版本号也是这个数字。

可以看看我的截图:

显然这不是jQuery的问题。后来搜了一下,发现居然真是一个bug,而且也是今天刚刚提交(美国时间28日)的:

Bug description

Binary package hint: firefox-3.0

Entering about: in the location bar brigns up the about-screen.

It shows version 1.9.0.3 instead of 3.0.3, but still show correct application name (i.e. it shows "Firefox version 1.9.0.3").

It seems that is the version of xulrunner.

The User-Agent string shown below correctly identifies the build as Firefox/3.0.3.

Downloading the binary build from mozilla.com and running it (using the same profile/themes/add-ons/…) correctly shows 3.0.3 as the version number.

I know it’s a minor bug, but it ought to be fixed.

ProblemType: Bug
Architecture: i386
Date: Sun Sep 28 10:58:50 2008
DistroRelease: Ubuntu 8.04
NonfreeKernelModules: fglrx
Package: firefox-3.0 3.0.3 +build1+nobinonly- 0ubuntu0.8.04.1
PackageArchitecture: i386
ProcEnviron:
PATH=/usr/local/sbin:/usr/local/bin:/usr/ sbin:/usr/bin:/sbin:/bin:/usr /bin/X11:/usr/games
LANG=de_AT.UTF-8
SHELL=/bin/bash
SourcePackage: firefox-3.0
Uname: Linux 2.6.24-19-generic i686

顺便扫盲:版本判断是Web前端开发中非常重要的一个环节:这是因为“前端环境”由用户掌控,并不像“服务器端环境”那样便于“统一规划”、“统一开发”:我用Windows的服务器跑IIS,就可以一心一意地写.net;用Linux+Apache+PHP就可以一心一意地写PHP。因此,对前端各种服务的版本判断能为我们开发优雅的Web应用提供帮助。

目前,jQuery的浏览器版本判断和SWFObject对FlashPlayer的版本判断是我最欣赏的两种实现。

_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) } }

Flash跨平台……未免有点寒

且不说从Windows跨到Linux或者Mac。就是IE, FF之间都有N多问题(虽然已经解决)

就拿我的blog小贴士说事:

1、我的“是男人就下100层”游戏是在51空闲时间做好的,结果发现IE下可以响应左右键,而FF却不行。
解决方案,把wmode=transparent去掉:(唉!

2、我的FF可以正常点开ComboBox而IE不行。
解决方案,把ComboBox组件重新编译一次

其实第二点的原因我知道,但我觉得FlashPlayer是不是有点痤……毕竟同样的swf跑在IE和FF居然有如此多的差异。

抱怨一下……期待毕设项目早日结束,快郁闷死了

MX2k4的bug问题[zz from xfykzz’s blog]

出处:
http://www.xfykzz.com/blog/blogview.asp?logID=25

好文,可惜我发现的太迟太迟了,8ball都出了才看到……现在仔细研读一下,嘿嘿

引用自
http://www.kirupaforum.com/forums/showthread.php?s=&threadid=34107
后面的有一段没有明白,先翻译了前三段:
– MovieClip.onLoad – will still work if you have code on a movieclip (ie some onClipEvent or even just //) but wont work if assigned in the timeline. Granted, if you're assigning it in the timeline, you might as well not have it in an onLoad at all, but none the less, it happens with the code on the movieclip so thats just odd (relic of FMX).
MovieClip.onLoad-如果您把代码加载到影片剪辑(movieClip)中,它会工作(加一些其它的onClipEvent动作或仅仅是//)(说明一下,这里指的"工作"是指onLoad会运行),但是加在时间轴上则不会工作.显然,如果您把该动作加到时间轴上,您可能不能使onLoad事件运行,但是如果把些代码在movieClip中则可以.

– Making a straight line a curve then undoing the action and then trying to move

Continue reading “MX2k4的bug问题[zz from xfykzz’s blog]”