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

Flash 如何在Actionscript中缩放填充,而不是笔划?,flash,actionscript-3,Flash,Actionscript 3,假设我有一个盒子。填充为渐变,笔划的厚度为1像素。如何调整填充大小,但保持笔划厚度不变 private function resizeMovieClip(newWidth:Number, newHeight:Number):void { this.movieClip.width = newWidth; this.movieClip.height = newHeight; } 基本上,我想模拟Javascript调整DOM元素的大小。在JS中,调整长方体的大小永远不会改变其边框。W

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

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

基本上,我想模拟Javascript调整DOM元素的大小。在JS中,调整长方体的大小永远不会改变其边框。

With

不确定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的绘制方式。


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


您将注意到,缩放已更改,因为线可能会变薄。如果没有发生这种情况,请单击其他内容,然后返回要修改的行。缩放比例可能已更改回正常值。有时,更改缩放比例似乎不起作用。如果先将缩放设置为水平或垂直,然后将其更改为无,则应能正常工作。

这不是必需的,而且在缩放时会占用更多处理器。是否有方法在Flash WYSIWYG IDE中设置
LineScaleMode
?我已经在那里绘制了填充和笔划。似乎在FLA中已经存在的形状上执行
mc.graphics.lineStyle(…)
不起作用。只有在动态创建这些形状时,它才起作用。
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;