1

我想从循环中更改 taxt 值,每次更改时我都会从中获取图像。

我有两个数字步进器,其中另一个是起始编号,另一个是结束编号。我还有启动功能的按钮。

所以按下后它开始:

private function makeFrames():void
{

    for (var i:int = 0; i < endFrameNumber.value; i++) 
    {
        currentFrameNumber++;
        frameText.text = currentFrameNumber.toString();
        makeImage(currentFrameNumber);
    }

}

然后我从文本中制作图像:

private function makeImage(value:int):void
{
    var projectFolderName:String = createFolder();

    bitmapData = new BitmapData(frameText.width,frameText.height, true, 0x00ffffff);
    bitmapData.draw(frameText,new Matrix());
    var bitmap : Bitmap = new Bitmap(bitmapData);
    var png:PNGEncoder = new PNGEncoder();
    var ba:ByteArray = png.encode(bitmapData);
    newImage = File.desktopDirectory.resolvePath(projectFolderName + "/" + "frame-number_" + value + ".png");
    fileStream = new FileStream();
    fileStream.open(newImage, FileMode.APPEND);
    fileStream.writeBytes(ba);
    fileStream.close();

}

因此,首先我更改文本值,然后尝试捕获它。它使图像是的,但所有数字都是相同的。那么,当我在循环中运行“makeImage”并捕获开始和结束数字之间的所有图像时,如何让它改变文本值?

使用 Flash Builder 4.6 和 AIR。

4

1 回答 1

0

您应该阅读有关Flex 组件生命周期的内容。

因此,有两种方法可以解决您的问题:

  1. 使用 invalidateProperties -> commitProperties。
  2. 在 Event.ENTER_FRAME 上添加EventListener

当然不能用foreach。在每个输入帧中,您应该:

  1. 设置新文本
  2. 使文本显示无效
  3. 制作和保存图像
于 2012-09-15T19:13:16.443 回答