禁用自动缩放在AS3
问题描述:
我上的AS3项目工作,其中一个元素需要扩展(向下)上悬停。问题是我无法弄清楚如何在没有AS3自动缩放所有内容的情况下扩展元素。禁用自动缩放在AS3
例如(this
是Sprite
):
private function expand(event:Event):void {
TweenLite.killTweensOf(this);
TweenLite.to(this, .2, {
height: _dimensions.tall_height
});
return;
}
会自动增长的this
所有儿童以填充可用空间。我正在寻找禁用此功能,将原先可见的内容留在原地,以便我可以透露新空间的其他内容。在TweenLite
声明中播放scaleY
似乎没有任何作用。
它没有任何意义,我这是为什么默认的行为,但我来自一个HTML(认为“盒子模型”)布局的心态,所以我认为这是让我陷入麻烦。
也许我完全有错误的想法 - 是否有更多的AS3适当的方法来“扩大”this
以显示额外的内容?
答
OK,所以你不能 “禁用” 在Flash中缩放。如果只想显示一部分对象,则必须使用所谓的掩码。
假设你有一个对象box
(雪碧),并且希望只显示该物体的顶部200像素:
var m:Sprite = new Sprite();
var g:Graphics = m.graphics;
g.beginFill(0);
g.drawRect(0, 0, box.width, 200);
g.endFill();
// Apply mask
box.mask = m;
现在,以后当你想展示整个对象,你可以简单地重绘mask:
var m:Sprite = Sprite(box.mask);
// Redraw mask, now 400px
var g:Graphics = m.graphics;
g.beginFill(0);
g.drawRect(0, 0, box.width, 400);
g.endFill();
// Reapply mask
box.mask = m;
等等。
如果你有AS3项目(不Flex的)工作,你几乎可以忘记设置宽度/高度。
答
反而扩大了雪碧本身,扩大其背景要素(S),其希望将具有缩放启用9切片。
它还听起来也许你正在使用一个面具来隐藏附加内容。你可以考虑简单地改变面具的高度。
太棒了!非常感谢,这是一个完美的开始。我还发现(在将掩码添加到显示列表后),可以调整它的高度 - 正是我期待的效果! – 2012-03-01 18:37:11