在adobeair应用程序中从JavaScript访问JpegEncoder类

Accessing JpegEncoder class from JavaScript in Adobe AIR application

本文关键字:访问 JpegEncoder JavaScript adobeair 应用程序      更新时间:2023-09-26

我需要在使用JavaScript的Adobe AIR应用程序中使用JPegEncoder对BitmapData对象进行编码

我正在尝试创建一个JpegEncoder对象

var encoder=new window.runtime.mx.graphics.codec.JPEGEncoder()

得到错误

TypeError: Result of expression'window.runtime.mx.graphics.codec.JPEGEncoder'[]不是构造函数。

我不确定是否我做错了什么,或者它是不可能访问该类这是我的mxml header

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<application xmlns="http://ns.adobe.com/air/application/2.6">

更新:我发现您需要添加对swf/swc的引用,这里是使用rpc

的应用程序的示例代码。
<script type="application/x-shockwave-flash" 
src="lib/air/swf/framework/framework/library.swf"></script>
<script type="application/x-shockwave-flash" 
src="lib/air/swf/framework/rpc/library.swf"></script>

我尝试添加mx而不是rpc,但它不起作用,我想如果我需要部署mx。SWC文件与应用程序?(我认为它不应该需要)或者它可能无法解析路径

我通过与应用程序一起部署framework.swf文件来解决这个问题,但是没有它可以完成吗?该文件是否存在于客户端机器上?

不知道为什么'window.runtime'…

使用xmlns:mx="http://www.adobe.com/2006/mxml"并显式导入类对我来说很好…
你还会得到一个编译器警告,告诉你没有为变量指定类型,例如:

import mx.graphics.codec.JPEGEncoder;
var encoder:JPEGEncoder = new JPEGEncoder();

和请-我已经看到了太多的AS代码依赖于不需要分号来终止语句-使用它们- FB ide是更好的,如果你这样做(自动纠正缩进等),更不用说这经常导致混合'使用'与一些行使用它其他不-我希望adobe能删除这个'功能'