2012-02-28 87 views
0

我上的AS3项目工作,其中一个元素需要扩展(向下)上悬停。问题是我无法弄清楚如何在没有AS3自动缩放所有内容的情况下扩展元素。禁用自动缩放在AS3

例如(thisSprite):

private function expand(event:Event):void { 
    TweenLite.killTweensOf(this); 
    TweenLite.to(this, .2, { 
    height: _dimensions.tall_height 
    }); 
    return; 
} 

会自动增长的this所有儿童以填充可用空间。我正在寻找禁用此功能,将原先可见的内容留在原地,以便我可以透露新空间的其他内容。在TweenLite声明中播放scaleY似乎没有任何作用。

它没有任何意义,我这是为什么默认的行为,但我来自一个HTML(认为“盒子模型”)布局的心态,所以我认为这是让我陷入麻烦。

也许我完全有错误的想法 - 是否有更多的AS3适当的方法来“扩大”this以显示额外的内容?

回答

1

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的)工作,你几乎可以忘记设置宽度/高度。

+0

太棒了!非常感谢,这是一个完美的开始。我还发现(在将掩码添加到显示列表后),可以调整它的高度 - 正是我期待的效果! – 2012-03-01 18:37:11

1

反而扩大了雪碧本身,扩大其背景要素(S),其希望将具有缩放启用9切片。

它还听起来也许你正在使用一个面具来隐藏附加内容。你可以考虑简单地改变面具的高度。