昨天我谈到了使用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文档。