【问题标题】:How to convert component to Image in flex?如何在flex中将组件转换为图像?
【发布时间】:2015-09-08 23:48:15
【问题描述】:

我们知道使用文件引用保存方法我们可以将组件保存为 flex 3 中的图像,但我使用的是 flex 3.0 版本,我没有在文件引用类中获得保存方法。它在 flex 3.4.0 及更高版本上可用。我们还有其他选项可以使用 flex builder IDE 在 flex 3.0 编译器中制作组件吗?

提前致谢

【问题讨论】:

    标签: apache-flex actionscript flex3


    【解决方案1】:

    如果这种情况允许使用 HTML5,那是可能的。

        public function capturePage(): void
        {
            var bmp:BitmapData = new BitmapData(this.width, this.height);
            bmp.draw(this, new Matrix());
    
            // convert to JPEG.
            var fileData:ByteArray = new JPEGEncoder().encode(bmp);
    
            var base64: Base64Encoder = new Base64Encoder();
            base64.encodeBytes(fileData);
    
            ExternalInterface.call("saveAsImage", "data:image/jpeg;base64,"+base64.toString());
        }
    

    index.template.html

    <title>${title}</title>
    <script language="JavaScript" type="text/javascript">
    function saveAsImage(value)
    {
        // open new window. You will be able to save as image.
        window.open(value);
    
        // or use HTML5 FileWriter API here.
    }
    </script>
    <script src="AC_OETags.js" language="javascript"></script>
    

    【讨论】:

    • 感谢您的宝贵信息,它对我来说很好,我会尝试使用文件写入器在本地系统或服务器上保存为图像格式。
    【解决方案2】:
            private function doSave():void 
            {              
                 var bmp:BitmapData = new BitmapData(canvas.width,canvas.height);
                bmp.draw(canvas,new Matrix());
    
                var filedate:ByteArray = new JPEGEncoder().encode(bmp);
    
                var uploadURL:URLRequest = new URLRequest();
                uploadURL.url = parentApplication.ServerUrl+"...../imageupload.php?fileName="+yourfilename;
                uploadURL.contentType = 'application/octet-stream';
                uploadURL.method = URLRequestMethod.POST;
                uploadURL.data = filedate;
                var urlLoader:URLLoader = new URLLoader();
                urlLoader.addEventListener(Event.COMPLETE, completeHandler);                
                urlLoader.load(uploadURL);
            }
    

    PHP 文件:imageupload.php

        <?php
          $fileName = $_REQUEST['fileName'] . ".jpeg";
          $fp = fopen( "../tempfolder/".$fileName, 'wb' );
          fwrite( $fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ] );
          fclose( $fp );
         ?>
    

    【讨论】:

      猜你喜欢
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 2011-01-28
      • 2021-06-28
      • 2020-10-03
      • 2018-07-21
      • 2023-03-30
      相关资源
      最近更新 更多