2009/10/24 01:56
我的博客中至少记录了2篇关于设置 wmode 后 Firefox 中 flash 有问题的文章,这次又发现了一个,当页面长度超过1屏,点击 flash 区域让 flash 获得焦点,然后滚动页面,如果不再次点击 flash 区域,按钮的 mouseOver 事件就不响应,去掉 wmode 后就没问题了,并且用 swfobject2.2 嵌入 flash 后也没有 flash 边缘恼人的虚线了。所以如果没有必绝对不要用 wmode。
2009/06/02 03:36
Flash(AS3)中在接收键盘响应时如果输入法是中文,所有 keyCode 都等于 229,解决办法就是将 IME.enabled 设为 false 或者 IME.conversionMode 设为 IMEConversionMode.ALPHANUMERIC_HALF
2009/05/19 05:01
今天在 Flash 里 call js 中加入收藏的功能,js 函数包括针对 IE 的 window.external.AddFavorite() 方法,点击测试死活没反应,可是 alert() 却能蹦出来,郁闷了半小时发现去掉 wmode=transparent 就可以了,wmode 这个参数从 Macromedia 时代就是一个让人又爱又恨的功能,wmode=transparent 的陷阱至少在 IE 和 FF 中都遇到过,不小心进去半天都出不来。
2009/03/30 15:28
flash 在 Firefox 中如果 wmode 设置为 opaque 或者 transparent 后 TextField 的 SCROLL 事件不响应,其它 mouseWheel 事件也应该不能用,FP for Firefox 的 bug。
2009/03/30 10:11
涂鸦板中用到的 Button、ToolTip、CheckBox、Label、Slider、ScrollView、TextInput、TextArea、Alert、ColorMixer 已经完成,是在 sdevil 组件基础上改进而来的,精简优化了代码,功能和交互上有些变动,可以在时间轴中布局,虽然比 CS3 组件的用法原始很多,另外还可以在纯 AS3 项目中使用,比如 FDT 和 FlexBuilder 中用 FCSH 编译,外部创建的 skin 在编译时 Embed 到 SWF 中去。
2009/03/22 14:11
SimpleButton 的 overState 设置了滤镜效果后鼠标移到 button 上然后改变舞台大小,鼠标再回到 button 上就不显示 overState 了,实际上只要是 overState 的 cacheAsBitmap=true 都有这个问题,可能是 FP 的 BUG,暂时不知道如何解决,先记录下来。
2008/09/25 02:47
啥也不说,“来路不明”的图片一张。工作区域更大了,很喜欢。
2007/11/11 07:07
忙碌了三个月的项目,其中有一部分是 AS3 写的在线创作 GIF 动画的 RIA。点这里体验 | 截图
2007/09/16 02:40
最近做的项目中有需要动态创建不规则图形 Mask,绘制的矢量图形 Mask 会占用大量 CPU 资源。以前以为用位图做 Mask 只能是矩形的,昨天发现把 Mask 和被 Mask 图形的 cacheAsBitmap 属性设置 true 就可以了,前提是遮罩和被遮罩的物件都是 Sprite 或者 MovieClip,不能直接用 Bitmap。下面是 AS3 的例子,AS2 同样支持。
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BitmapDataChannel;
import flash.geom.Point;
import flash.geom.Rectangle;
var bmd:BitmapData = new BitmapData(200, 200, true, 0xFFFF0000);
var bmdMask:BitmapData = new BitmapData(200, 200, true);
var seed:int = int(Math.random() * int.MAX_VALUE);
var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE;
bmdMask.perlinNoise(100, 80, 12, seed, false, true, channels, false, null);
var bitmap:Bitmap = new Bitmap(bmd);
var bitmapMask:Bitmap = new Bitmap(bmdMask);
addChild(bitmap);
addChild(bitmapMask);
var threshold:uint = 0×00800000;
var color:uint = 0×00FFFFFF;
var maskColor:uint = 0×00FF0000;
bmdMask.threshold(bmdMask, bmdMask.rect, new Point(), ">", threshold, color, maskColor, true);
var spriteMask = new Sprite();
spriteMask.addChild(bitmapMask);
spriteMask.cacheAsBitmap = true;
this.addChild(spriteMask);
var display = new Sprite();
display.addChild(bitmap);
display.cacheAsBitmap = true;
addChild(display);
display.mask = spriteMask;