uploadify 目前不能正确显示中文的按钮文本。
我发现bug的原因是uploadify错误的使用了 js 的 escape 和 flash 的 unescape配对,而这2个是不兼容的。正确的转码传递参数应该用 encodeURI/decodeURI 配对,这2个函数的行为在js和flash里是相同的。其他地方的escape/unescape也应该替换掉,下面只修改影响按钮文本的部分。
1. jquery.uploadify.v2.0.3.js 66行
< if (settings.buttonText) data.buttonText = [color=blue]escape[/color](settings.buttonText);
> if (settings.buttonText) data.buttonText = [color=red]encodeURI[/color](settings.buttonText);
2. uploadify.fla scene 1 脚本文件117行
< browseBtn.empty.buttonText.text = [color=blue]unescape[/color](param.buttonText);
> browseBtn.empty.buttonText.text = [color=red]decodeURI[/color](param.buttonText);
3. uploadify.fla Scene 1\ empty\ buttonText 的UI属性
必须使用设备字体(比如 _sans)而不是嵌入字体。
然后用修改过的fla重新生成 swf 文件。
我发现bug的原因是uploadify错误的使用了 js 的 escape 和 flash 的 unescape配对,而这2个是不兼容的。正确的转码传递参数应该用 encodeURI/decodeURI 配对,这2个函数的行为在js和flash里是相同的。其他地方的escape/unescape也应该替换掉,下面只修改影响按钮文本的部分。
1. jquery.uploadify.v2.0.3.js 66行
< if (settings.buttonText) data.buttonText = [color=blue]escape[/color](settings.buttonText);
> if (settings.buttonText) data.buttonText = [color=red]encodeURI[/color](settings.buttonText);
2. uploadify.fla scene 1 脚本文件117行
< browseBtn.empty.buttonText.text = [color=blue]unescape[/color](param.buttonText);
> browseBtn.empty.buttonText.text = [color=red]decodeURI[/color](param.buttonText);
3. uploadify.fla Scene 1\ empty\ buttonText 的UI属性
必须使用设备字体(比如 _sans)而不是嵌入字体。
然后用修改过的fla重新生成 swf 文件。