Tag: actionscript 3

将对象从flex发送到java servlet

这是我在actionscript中的方法 var urlVars : URLVariables = new URLVariables(); urlVars.myname = byteArr; var urlReq : URLRequest = new URLRequest(‘MyServlet’); urlReq.data = urlVars; urlReq.method = ‘post’; navigateToURL(urlReq, ‘_blank’); 如何在servlet上接收字节数组? 上面的byteArr也来自java方面, byte[] byteArr = aMethodWhichReturnsaPDFByteArray(); HttpServletResponse response = FlexContext.getHttpResponse(); ServletOutputStream os = null; try { response.reset(); response.setContentType(“application/pdf”); response.setContentLength(byteArr.length); response.setHeader(“Content-disposition”, “inline; filename=\”Report.pdf\””); os = response.getOutputStream(); os.write(byteArr); os.flush(); os.close(); 上述方法不起作用。

Java – 信号事件模式

我受到了AS3中Signals事件模式的启发,它取代了flash的原生事件。 它在性能和可读性方面都做得更好。 所以我试图用Java实现它。 这种模式的主要思想是你正在使用对象而不是类型,因此节省了找到“Dispatcher”类来处理事件调度的时间。(调度事件是向所有侦听器发送事件) 所以让我们跳转到代码中:在这个示例中,我将创建AlarmManager并处理他的警报事件。 首先,我们需要为此事件创建接口 public interface IAlarmEvent { void alarmEventHandler(String alert); } 现在事件本身: public class AlarmEvent extends Signal implements IAlarmEvent { public void alarmEventHandler(String alert) { dispatch(“alarmEventHandler”, alert); } } 这是AlarmManger: public class AlarmManager { public final AlarmEvent alarmEvent = new AlarmEvent(); public void init(){ // Dispatching the event alarmEvent.alarmEventHandler(“Wake up”); } } […]

将像素位置转换为纬度/经度,反之亦然

我需要将纬度经度值转换为像素位置,并执行相反的操作。 我发现很多解决方案来自lat / lng-> pixel,但反过来找不到任何东西。 几个笔记: 地图是固定大小,没有缩放,没有拼贴。 我不需要任何超级准确的东西,它并不重要。 优选墨卡托投影,但不是必需的。 我实际上并没有显示结果。 (任何2D投影) 我不能依赖任何基于网络的API,即:没有谷歌地图 几乎任何编程语言的解决方案都可以,只要它不依赖于任何特定于平台的API。 这是从lat / lng->像素转到的示例: var y = Math.round(((-1 * lat) + 90) * (this.MAP_HEIGHT / 180)); var x = Math.round((lng + 180) * (this.MAP_WIDTH / 360));

BlazeDS和自定义对象的ArrayList

我正在使用BlazeDS将Flex与Java连接。 我无法将自定义对象的ArrayLists从Flex传递给java。 我有两个对象,一个叫做Category,另一个是Section。 Category具有Section对象的ArrayList。 我可以在Flex和Java之间来回发送Category对象的ArrayList,问题是当我尝试访问从Flex返回到Java的Category对象的SectionList时,我收到以下错误: flex.messaging.MessageException: java.lang.ClassCastException : flex.messaging.io.amf.ASObject 出于某种原因,我得到的是ASObjects的ArrayList而不是我的Section对象。 我试着查找如何在actionscript中显式地键入数组,但我唯一能找到的是使用Vector对象,BlazeDS不支持。 是否可以在Category对象的ArrayList中传递Section对象的ArrayList,或者我是否必须找到另一种方法?

Java中的getter / setter

我是Java新手,但对ActionScript 3有一些OOP经验,所以我试图依靠我所知道的东西进行迁移。 在ActionScript 3中,您可以使用get和set关键字创建getter和setter,这意味着您在类中创建方法并通过该类的实例的属性访问数据。 我可能听起来很复杂,但事实并非如此。 这是一个例子: class Dummy{ private var _name:String; public function Dummy(name:String=null){ this._name = name; } //getter public function get name():String{ return _name; } //setter public function set name(value:String):void{ //do some validation if necessary _name = value; } } 我会在对象中访问name : var dummy:Dummy = new Dummy(“fred”); trace(dummy.name);//prints: fred dummy.name = “lolo”;//setter trace(dummy.name);//getter 我怎么用Java做到这一点? […]

用作接口替代的内部类的示例

我被告知,这引起了我对这个话题的好奇心: Java gui类可以实现数百个Listener和Callbacks,许多书籍教你在gui类中实现所有这些接口。 或者,这些方面可以在内部类中实现,因此该侦听器调用的方法不会混淆。 我想知道如何在ActionScript中执行此操作,ActionScript没有内部类,但具有私有类。 但是,我不认为我完全意识到内在的课程是什么,所以我只是试图绕过我将用它们按用法组织课程方法的情况。 如果可能的话,请展示ActionScript中的外观示例,否则为Java。

将文件从actionscript发送到servlet

我不知道在Flash或Actionscript中编程。 其实我是Java EE开发人员。 在Flash文件中我有这个方法: private function recordComplete(e:Event):void { fileReference.save(recorder.output, “recording.wav”); } 此方法会将录制的声音保存到我们将指定的文件夹中的“recording.wav”。 我想要做的是通过将录制的声音发送到Java Servlet来将保存更改为磁盘。 我找到了这段代码,但我不知道如何在HTTP请求中发送的params中插入recorder.output: var uploadRequest:URLRequest = new URLRequest(“http://127.0.0.1:8080/uploading/upservlet”); uploadRequest.method = URLRequestMethod.POST; uploadRequest.contentType = “multipart/form-data”; uploadRequest.data = myByteArray; var uploader:URLLoader = new URLLoader; uploader.addEventListener(ProgressEvent.PROGRESS, onUploadProgress); uploader.addEventListener(Event.COMPLETE, onUploadComplete); uploader.dataFormat = URLLoaderDataFormat.BINARY; uploader.load(uploadRequest); 请帮忙。

腐败的表格数据:过早结束

我正在尝试使用FileReference类上传文件。 文件> 2MB都正常工作但文件<2MB导致此错误: “java.io.IOException:损坏的表单数据:过早结束” 在服务器上,我使用com.oreilly.servlet包来处理请求。 我已经多次使用这个包来成功处理flex的文件上传,但由于某种原因,现在我遇到了这个问题。 以下是更多信息的堆栈跟踪: java.io.IOException: Corrupt form data: premature ending at com.oreilly.servlet.multipart.MultipartParser.(MultipartParser.java:205) at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:222) at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:173) at com.mydomain.FileUploadServlet.doPost(FileUploadServlet.java:46) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:414) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

Java的异步HTTP客户端

作为Java世界中的一个相对新手,我发现很多事情令人沮丧地完成,在许多其他框架中相对微不足道。 一个主要的例子是异步http请求的简单解决方案。 看起来似乎并不存在,最好的方法是什么? 使用像httpclient这样的阻塞类型lib或者内置的java http东西来创建我自己的线程,或者我应该使用更新的非阻塞io java东西 – 对于应该简单的东西来说似乎特别复杂。 我正在寻找的是从开发人员的角度来看易于使用的东西 – 类似于AS3中的URLLoader – 您只需创建一个URLRequest – 附加一堆事件处理程序来处理完成,错误,进度等,并调用一种解雇它的方法。 如果您不熟悉AS3中的URLLoader,它非常简单,看起来像这样: private void getURL(String url) { URLLoader loader = new URLLoader(); loader.addEventListener(Event.Complete, completeHandler); loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); URLRequest request = new URLRequest(url); // fire it off – this is asynchronous so we handle // completion with event handlers loader.load(request); } […]