Flash陷阱之scrollRect

偶知道scrollRect和mask是两个概念,区别有很多,但都可以当遮罩用。而且用了scrollRect后,访问“对象.width”就直接等于scrollRect.width,这点似乎要比mask好用。可这里有adobe埋下的一个陷阱在...

 

假设有个对象width=200,设置scrollRect的width=100后。对象的width就马上=200了吗?No!这还得分几种情况:

1、对象有没有被add到显示列表中,如果没有,对象width不受scrollRect影响。也就是一旦对象被removeChild,width马上打回原形。

2、add到显示列表后,width并不会立刻改变(程序上叫同步)。也不是大家熟悉的“下一帧”改变,而是随机的有时下一帧,有时下两帧...

 

以下是测试代码:

 

import flash.display.Shape;
import flash.geom.Rectangle;
import flash.events.Event;

var s:Shape = new Shape();
s.graphics.beginFill(0);
s.graphics.drawRect(0,0,200,200);
s.graphics.endFill();

s.addEventListener(Event.ENTER_FRAME, ef);

trace('before scrollRect width:', s.width);

s.scrollRect = new Rectangle(0,0,100,100);

trace('after scrollRect width:', s.width);

addChild(s);


function ef(e:Event):void
{
	if(s.width == 100)
		s.removeEventListener(Event.ENTER_FRAME, ef);
	trace('enter frame width:', s.width);
}

 

转载于:https://www.cnblogs.com/holybozo/archive/2010/07/14/1777309.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值