如何缩放填充,而不是在Actionscript中缩放?

时间:2011-06-28 00:17:06

标签: flash actionscript-3

假设我有一个盒子。填充是一个渐变,笔划有1像素的厚度。我如何调整其填充大小但保持笔划厚度不变?

private function resizeMovieClip(newWidth:Number, newHeight:Number):void 
{
   this.movieClip.width = newWidth;
   this.movieClip.height = newHeight;
}

基本上,我想模仿Javascript调整DOM元素的大小。在JS中,调整框的大小永远不会改变它的边界。

4 个答案:

答案 0 :(得分:5)

lineStyle()的scaleMode设置为LineScaleMode.NONE

var sh:Shape = new Shape();
sh.graphics.lineStyle(1.0, 0x000000, 1.0, false, LineScaleMode.NONE);
sh.graphics.beginFill(0xFF0000, 1.0);
sh.graphics.drawRect(0, 0, 100, 100);
sh.graphics.endFill();

addChild(sh);

sh.scaleX = sh.scaleY = 4.0;

答案 1 :(得分:2)

答案 2 :(得分:0)

不确定你的MC是如何绘制的,但我会在每次调整大小时重绘它:

private function resizeMovieClip(newWidth:Number, newHeight:Number):void 
{
    this.graphics.clear();

    this.movieClip.width = newWidth;
    this.movieClip.height = newHeight;   

    this.graphics.lineStyle(1,0x000000);
    this.graphics.lineTo(this.width,0);
    this.graphics.lineTo(this.width,this.height);
    this.graphics.lineTo(0,this.height);
    this.graphics.lineTo(0,0);
}

免责声明:当然,在重新绘制边框之前,这将清除使用图形API绘制的任何其他内容,并且根据您的MC绘制方式,它可能无效。

答案 3 :(得分:0)

对于后代,正如OP所提到的,可以直接在IDE中修改此选项。

Scale dropdown in Flash

您会注意到缩放已更改,因为该行可能会变薄。如果没有发生这种情况,请单击其他内容,然后返回您正在修改的行。缩放可能已更改回“正常”。看来有时候,改变缩放不起作用。如果首先将缩放设置为“水平”或“垂直”,然后将其更改为“无”,则应该可以正常工作。