以前在AS2中,只要为MC指定onRelease或者onRollOver等等点击事件,当鼠标移到MC上时,鼠标就变成手形了,完全不用管。在AS3中改变了这一规则,你首先得用addEventListener添加事件,添加完事件之后,鼠标移到MC上依然是默认的箭头形状。要改变这个形状,还需要指定MC的buttonMode属性为true:
myMC.buttonMode = true;
AS3中支持双击事件,不过要启用这个双击事件就得指定另外一个属性——doubleClickEnabled为true:
myMC.doubleClickEnabled = true;
不过,需要注意的是,如果你这个MC同时有单击事件和双击事件那么在双击的第一下会触发单击事件,而第二下则不回触发单击事件~
2007-12
检测FLV是否播放完成,在Flash CS3的帮助文档中有onPlayStatus的说明,其返回的信息对象可能的值有两个,一个是 NetStream.Play.Switch,还一个是NetStream.Play.Complete。结果在client的事件中写上onPlayStatus,发现在编辑器中这个事件名称居然还是黑色,而不是和onMetaData一样的蓝色!如果此时加上trace(info.code),在FLV播放完成后还会报错,错误信息中冒出来一个onLastSecond。在帮助文档中查了一下这个事件,居然没有任何介绍。
既然onPlayStatus不管用,不妨试试onLastSecond,这个事件名称还是黑色,写上trace(info.code),结果FLV播放完成之后trace出来一个undefined,看来NetStream中还真有这个事件,但是为什么文档中没有任何介绍呢?
不管怎样,总算还能用onLastSecond检测FLV播放完成,不过这应该不是什么好方法……
2007-12

在上面的这个图片中,现在那个绿色的矩形(绿线)长度为250,这条绿色的线是一个MovieClip,若其原长度为250,那么用event.localX获得的值将在0到250之间;但是如果其原长度为400,那么用event.localX获得的值将会在0到400之间,而与该MC在影片中的实际长度无关。
不过这样也还好,获取事件触发的x坐标占这个MC长度的百分比依然很简单,直接用除以MC的原长度就行了。
2007-12
在AS3中,NetStream类有这样一个属性:soundTransform,可以用来控制FLV的声音,其实现为:
实现
public function get soundTransform():SoundTransform
public function set soundTransform(value:SoundTransform):void
SoundTransform类又有个volume属性,于是想是不是直接这样写就行了:
var volumeSize:Number = 0.2;
ns.soundTransform.volume = volumeSize;
结果丫的没任何反应……莫非必须重新为ns指定一个soundTransform对象?于是改成这样:
var volumeSize:Number = 0.2;
var st:SoundTransform = new SoundTransform(volumeSize,0);
ns.soundTransform = st;
这样就木有问题了。
这几天在被Flash玩(还没到玩Flash的境界),在flash中写了个自定义右键菜单,其中有个暂停功能,本来以为来个简单的stop()就够了,结果发现不是那么回事,所有MC仍在继续播放……看来只有一个一个地停止所有MC了,但是这个工作显然不能人工搞定,程序吧。由于MC里面嵌套有MC,只有用递归才是比较好的办法。先找出目标MC中的所有MC,然后一个一个地stop。这样想清楚了,其实代码也很简单:
function stopAllClips(target:MovieClip) {
for (var mc in target) {
var objMC = target[mc];
if (objMC instanceof MovieClip) {
objMC.stop();
stopAllClips(objMC);
}
}
target.stop();
}
同样,播放所有MC的function和这个也是一样的。不过,还是有一点点问题,貌似duplicate出来的MC不能停止,不知道有没有什么办法?不过我的那个Flash中不暂停也蛮好的,本来就是用来做背景的,呵呵~~
先废话几句:AS中的计算误差也真是很有趣,例如:6.4-6.3=0.100000000000001,这是在Flash 8中运行的结果,我真是无语了!附图一张:
evalString 函数介绍:
evalString(expression:String) : Number
expression 为一个算术表达式,该函数将计算此表达式的值,并返回计算结果。此表达式仅限于简单的+、-、×、÷以及带括号的运算,表达式中不得有其他符号,包括空格。表达式中的数字不仅限于一位整数,也可为多位整数,甚至是小数。
参数
expression:String - 一个字符串表达式。
返回
Number - 一个数值。
示例
var infix:String = "(48-20*(6.2-5))/(18-15)";
trace(evalString(infix)); //output 8
Processed in 0.6562584 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号
用户中心
日志分类

最新日志
最新评论
统计信息






友情链接