外部脚本文件和使用Flex打印对象

昨天我谈到了使用Flex Script元素在mxml文件中运行代码,您也可以使用Script元素的source属性来引用外部文件。要创建外部脚本文件FlashDevelop,请转到“文件”->“新建”,然后选择“空白文档”。您也可以通过按Ctrl + N来执行此操作。这将创建一个空白文档,你必须保存与推广项目的src目录作为。请注意,如果将此文件称为“ sourcefile.as”,则必须在脚本标签中像这样引用它。

<mx:script source="sourcefile.as">
 
</mx:script>

执行此操作时,您会注意到脚本文件将成为文件的一部分Main.mxml。您可以使用与内联脚本标签相同的方式添加功能。

印刷

通过此外部脚本文件,我们现在将创建一些图像,并使用Flex具有的内置打印对象进行打印。该对象称为FlexPrintJob,如果要使用它,则必须在脚本文件的顶部包含此对象。将以下行放在脚本文件的顶部。

import mx.printing.FlexPrintJob;

在您的mxml文件中创建一个用于打印的按钮。

<mx:button click="printImage();" id="print" label="Print"></mx:button>

添加将要打印的图像。

<mx:image id="one" source="one.png"></mx:image>

这是将要使用的图像。

返回脚本文件并添加将打印出图像的功能。我们printImage()在Button声明中调用了此函数。该函数通过创建一个名为printJob的新FlexPrintJob对象来工作。start()然后使用此功能进行尝试和打印。基本上,如果打印作业有效,则此函数返回true;如果用户单击“取消”,则此函数返回false。

如果该start()函数返回true,则将要打印的对象(在这种情况下,标识为“ one”的图像将添加到printJob对象。最后,将send()调用该函数将数据发送给打印机。这是该函数) 。

public function printImage():void
{
 // 创建一个FlexPrintJob实例。
 var printJob:FlexPrintJob = new FlexPrintJob();
 
 // 开始打印作业,并检查它是否正常工作
 if (printJob.start() != true) {
  return;
 }
 
 // 将要打印的对象添加到打印作业
 printJob.addObject(one);
 
 // 发送到打印机
 printJob.send();
}

这是FlexPrintJob函数的最简单用法,因为有些控件可用于格式化页面。

通过将父对象添加到FlexPrintJob对象,可以打印出多个对象,尤其是在它们是另一个对象的子对象的情况下。以mxml的以下部分为例,该部分定义了Canvas元素,并将三个定位的图像作为子元素。

<mx:canvas id="images">
 <mx:image id="one" source="one.png" x="0" y="0">
 <mx:image id="two" source="two.png" x="100" y="0">
 <mx:image id="three" source="three.png" x="0" y="100">
</mx:image></mx:image></mx:image></mx:canvas>

这将产生以下应用程序。

要一次打印出所有三个图像,只需包含Canvas对象而不是单个图像对象即可。printImage()从此更改函数中的第11行:

printJob.addObject(one);

对此。

printJob.addObject(images);

printJob对象了解继承,并将打印出该元素中包含的所有内容。这包括按钮或您放入canvas元素中的任何其他元素。

有关FlexPrintJob对象的更多信息,请参见Flex文档。