簡體   English   中英

我可以打開瀏覽器窗口來查看由Flex 3應用程序創建的圖像嗎?

[英]Can I open a browser window to view an image created by a flex 3 application?

我有一個flex 3應用程序,該應用程序從用戶繪制的畫布上創建圖像。 我使用ImageSnapshot類創建圖像

var imageSnap:ImageSnapshot=ImageSnapshot.captureImage(myCanvas);
            var imageByteArray:ByteArray=imageSnap.data as ByteArray;

我希望用戶能夠打印或保存圖像。 我可以使用以下代碼打印圖像,但是flex無法很好地控制多頁打印

var printJob:FlexPrintJob=new FlexPrintJob();
                printJob.start();
                printJob.addObject(myCanvas, FlexPrintJobScaleType.SHOW_ALL);

我想在瀏覽器窗口中顯示圖像,以便用戶可以使用內置的瀏覽器功能進行打印,或者右鍵單擊圖像並保存。 無需請求服務器端代碼就可以完成此操作嗎? 我知道Flash Player 10和Flex 4允許您將文件保存在本地,但是現在我被Player 9和Flex 3困住了

我不相信您可以這樣做,因為它會違反沙箱。 例如,如果這有效,則意味着您可以在用戶的​​機器上放置任意代碼(類似於圖像),而無需他們的同意或不知情。

我不確定這是否行得通,但是請嘗試以下操作:

顯示指向圖像的鏈接(file://path/to/image/img.ext)並設置window.htmlLoader.navigateInSystemBrowser = true;

只要應用程序在Flash Player 10中運行,您仍然可以在Flex 3中使用FileReference的新功能(save()和load()方法)。但是,如果您確實對Flash Player 9有所了解,則需要首先將映像推送到服務器。 如果您正在尋找將數據推送到服務器的好方法,請在以下問題中參考我的解決方案:

Flex:將未實現的UIComponent渲染到BitmapData嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM