开发者

How to take "print screen" from your FLEX application and save it to hard drive?

开发者 https://www.devze.com 2022-12-26 06:47 出处:网络
So I have such code for my application <?xml version=\"1.0\" encoding=\"utf-8\"?> <s:Application xmlns:fx=\"http://ns.adobe.com/mxml/2009\"

So I have such code for my application

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="lib开发者_如何学Crary://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

    <fx:Script>
        <![CDATA[
            protected function prtscrn_clickHandler(event:MouseEvent):void
            {
                // save current RIA view as a PNG or JPG to users FileSistem
            }
        ]]>
    </fx:Script>

    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <s:Button x="21" y="10" label="Print Screen" id="prtscrn" click="prtscrn_clickHandler(event)"/>
    <s:TitleWindow x="45" y="98" width="282" height="303">
        <s:CheckBox x="25" y="10" label="CheckBox"/>
        <s:Button x="24" y="44" label="Button"/>
        <mx:DateChooser x="24" y="76"/>
    </s:TitleWindow>
</s:Application>

I want to save Its something like "Print Screen" to users hard drive on button click.

How to du such thing?


Unfortunately you can't Print Screen the whole user's desktop, you can only "Print Screen" the flash file. Pseudo-code below:

var b:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
b.draw(stage);

// create reference that will be the saved file
var ref:FileReference = new FileReference();

// add listeners for filereference ...

// save the bitmapdata
ref.save(b.getPixels(b.rect));
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号