Flex3发布了,因为FlexBuilder for Linux并没有正式发布,对于我们这些在Linux平台下工作的人来说,就只有下载Flex 3 SDK了,有SDK其他也就没什么了,现在的FlexBuilder for Linux alpha 2还是用得挺顺手的,可是官方提供的SDK是不包括Data Visualization components的,这就是说Flex 3中的AdvancedDataGrid和图表相关的东西使用官方的Flex 3 SDK是不能使用的,不过还好FlexBuilder 3 Profession里面包含的SDK是完整的,里面有Data Visualization components,所以我们可以直接使用FlexBuilder 3 Profession中的SDK就可以了。当然也可以直接通过以下方法将Data Visualization component相关的文件拷贝到官方提供的SDK里面来增加Data Visualization component的支持:

将FlexBuilder 3 Profession里面包含的SDK直接复制到官方SDK的对应目录就可以了:

  • /FlexBuilder3_sdk-3/frameworks/rsls/datavisualization_3*.sw*
  • /FlexBuilder3_sdk-3/frameworks/locale/en_US/datavisualization_rb.swc
  • /FlexBuilder3_sdk-3/frameworks/libs/datavisualization.swc

大家要懒得为了这么几个文件,去下载400多M的FlexBuilder 3文件,大家可以直接点这里下载我从FlexBuilder 3 中剥离出来的文件。下载后直接解压到Flex 3 SDK安装目录即可,例如:

[bash]
tar xzf flex3_dataVisualzationC.tar.gz -C /path/to/sdk3

另外,如果那个朋友使用compc编译lib的时候出现如下错误:

[bash]
Locking assertion failure.  Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb5364767]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb53648b1]
#2 /usr/lib/libX11.so.6(_XReply+0xfd) [0xb53b929d]
#3 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/xawt/libmawt.so [0xb54bb8ce]
#4 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/xawt/libmawt.so [0xb5498067]
#5 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/xawt/libmawt.so [0xb5498318]
#6 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/xawt/libmawt.so(Java_sun_awt_X11GraphicsEnvironment_initDisplay+0x2f) [0xb549861f]
#7 [0xb5cf2e9d]
#8 [0xb5cebedd]
#9 [0xb5cebedd]
#10 [0xb5ce9249]
#11 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/client/libjvm.so [0x621c40d]
#12 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/client/libjvm.so [0x6310378]
#13 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/client/libjvm.so [0x621c2a0]
#14 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/client/libjvm.so(JVM_DoPrivileged+0x363) [0x6272153]
#15 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/libjava.so(Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2+0x3d) [0xb7d0496d]
#16 [0xb5cf2e9d]
#17 [0xb5cebd77]
#18 [0xb5ce9249]
#19 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/client/libjvm.so [0x621c40d]
java: xcb_xlib.c:82: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.

这是JRE的libxcb的link的一个Bug,大家可如下解决:

[bash]
sudo sed -i 's/XINERAMA/FAKEEXTN/g' /usr/lib/jvm/java-6-sun/jre/lib/i386/xawt/libmawt.so

更多的解决方法可以看这里,更详细的原因分析可以查看这里