`
sunguanxing
  • 浏览: 1097972 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java编程和Flash通讯

阅读更多
Socket(套接字技术)是一种简单而易学的技术,尤其在当前像java编程这样面向网络,面向商业开发的语言的支持下,实现起来是相当方便的。

Flash大家都知道,在网络图像,动画的传输上有着独天得厚的优厚优势,Flash player及其插件的高普及率。再加上一个十分强大的OO型的脚本AS2,以及它的失量图形系统,swf跨平台等优点。在短期内恐怕难有对手可以与之抗衡,而且有发展的越来越好的趋势。
但是,Flash的功能毕竟还是有极限的。比如,随意的读写文件等基本的应用程序应有的功能都无法实现。在应对大规模的数据输入的时候,用Flash比较“偏”的数据库存取系统无论是开发效率和运行效率都难以有保证。
而现在主流的商业化,网络化的OO技术,如java编程等,在处理后台数据要事物方面可是拿手绝活。所以,如果能利用java编程等主语言写的程序来处理数据,通过数据间的传递补,让Flash在前能做一个展示级的平台的功能,一定可以让你开发出前所未有的,无论在外还是在内都堪称一流的直接面向网络的软件。

今天我做的尝试有些人也已做过了,不过我这里是拿自己尝试的体验与大家一起来分享一下:

1.首先要知道一件事,就是能不能做的问题的,java编程自不必说了。Flash方面,主要是有一个XmlSocket类,可以用来与建成服务器的应用软件通讯.通讯的形式有两面种,一种是用xml节点信息,比如说这样:

在xml技术被广泛应用的今天,这种格式更有生命力,xml在j2ee级别的应用里可以经常看到.
还有一种是相对简单的,直接传字符串.在小规模的程序里会比较实用.
当然啦,说到底传的都是字节流.
在用以上两种方式传输的时候,请不要忘了,在Flash和java编程端,都要加上字节流的终止符:
Flash传给java编程程序做的服务器端的信息,未尾加”
”.
java编程程序做的服务器端传达室给Flash的信息,未尾加””.
2传完数据了,接下来就是解析了,在两端都可以直接应用各自的字符串Api进行方便的处理。这里就不细谈了。
下面简单介绍一下我做的一个小Demo,通过java编程发数据给Flash让Flash中的一个小球从左向右移动:

import java编程.io.*;
import java编程.net.*;
public class mainServer
{
public static boolean sFlag;
public static void main(String args[])
{
try
{
ServerSocket server=null;
try
{
server=new ServerSocket(4700);
}
catch(Exception e)
{
System.out.println("can not listen to :"+e);
}
Socket socket=null;
try
{
System.out.println("java编程 Server Start:");
socket=server.accept();
System.out.println("client has connected
");
}
catch(Exception e)
{
System.out.println("Error:"+e);
}
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));//*correct get the input from the client
PrintWriter os=new PrintWriter(socket.getOutputStream()); /*correct make os the output to client*/
sFlag=true;
controlThread testController=new controlThread(os);
testController.start();//启动控制线程.
while(sFlag)
{ ;
}
System.out.println("server ends successfully!
");
is.close();
socket.close();
server.close();
}
catch(Exception e)
{
System.out.println("Error:"+e);
}
}
}
主程序相当简单,建立Socket服务端,并启动一个管理线程,那好,下面就来看这个管理线程:

import java编程.io.*;
public class controlThread extends Thread
{
private Point controlNode;
private PrintWriter outputStream;
public controlThread(PrintWriter inOutputStream)
{
outputStream=inOutputStream;//得到要写回的数据的对象,这里是flash客户端.
}
public void run()
{
controlNode=new Point(180,150);
for(int i=0;i<100;i++)
{
try
{
sleep(400);
}
catch(java编程.lang.InterruptedException e)
{
System.out.println(e);
}
controlNode.mx=180+i*2;
outputStream.println(controlNode.toString()+"");
outputStream.flush();
System.out.println(controlNode.toString());
}
mainServer.sFlag=false;
}
}
通来改变一个点结点的信息,传给Flash中的对象,用sleep函数来达到一定的延时作用,达到控制Flash对象的功能.
结点类够简单:

class Point
{
public int mx;
public int my;
public Point(int inX,int inY)
{
mx=inX;
my=inY;
}
public String toString()
{
return new String(mx+","+my);
}
}
下面转到Flash:
主要经历以下工作:
1) 建立连接
2) 接收传达回的消息,并来场景上响应的动画,改变对象的坐标值.
相当轻松的工作,不是吗?
1.建立连接:

function mainF():Void
{
if(_root.DEBUG)
createDebugMc();
var serverAddress:String="127.0.0.1";
var port:Number=4700;
_root.gSocket=new XMLSocket();
_root.gSocket.onConnect=myOnConnect;
_root.gSocket.onData=myOnData;
if(!_root.gSocket.connect(serverAddress,port))
{
trace3("Connection failure!");
}
}
2接收传达回的消息,并来场景上响应的动画,改变对象的坐标值.在一个onData函数中实现:

function myOnData(str:String):Void
{
trace3(str);
var arr:Array=str.split(",");
var tmpX:Number=Number(arr[0]);
var tmpY:Number=Number(arr[1]);
_root.ball._x=tmpX;
_root.ball._y=tmpY;
}
http://www.cnzzad.com/tut/63954.html
分享到:
评论

相关推荐

    java_and_flash.rar_flash java_java flash

    "www.pudn.com.txt"和"java与flash通讯"这两个文件可能包含了关于这些通信方式的详细教程、示例代码或最佳实践,对于开发者来说是一份宝贵的学习资源。 总之,Java与Flash的交互技术是一个综合了网络编程、数据交换...

    一苏通(java+flash)通讯工具

    "一苏通"是一款基于Java和Flash技术实现的通讯工具,专用于局域网内的实时聊天功能。这个项目展示了如何将两种不同的编程语言和技术融合在一起,以创建一个交互性强、实时性好的通信平台。下面我们将深入探讨其中...

    flash网游基础通讯(FMS,JAVA)

    在本话题中,我们将深入探讨Flash网游基础通讯,重点关注Flash与FMS(Flash Media Server)以及Flash与Java之间的交互。这些技术在构建实时互动游戏和多媒体应用时起着至关重要的作用。 首先,让我们来看看Flash与...

    Flex与java通讯

    Flex与Java之间的通信是开发富互联网应用程序(RIA)时经常遇到的一个重要技术问题。Flex作为Adobe推出的基于ActionScript的开放源代码框架,主要用于构建交互性强的用户界面,而Java则是一种广泛使用的后端开发语言...

    flash 843安全策略文件 java版本

    压缩包子文件的文件名“flash 843 socket通讯安全策略文件”很可能就是包含有Java程序的JAR文件,用于运行MINA框架的843端口策略服务。用户只需将这个文件部署到服务器上,并确保其在843端口监听,就可以使Flash应用...

    AS与java socket通讯解决安全沙箱

    在IT行业中,网络通信是应用程序之间交互的重要方式之一。在这个场景中,我们关注的是...提供的压缩包文件“AS与java socket通讯 解决安全沙箱”可能包含示例代码或更详细的说明,帮助你更好地理解和实践这个过程。

    flex与java通讯配置源码demo

    Flex与Java之间的通讯是Web应用程序开发中的重要环节,特别是在构建富互联网应用(RIA)时。Flex作为Adobe开发的客户端UI框架,主要用于创建交互性强、视觉效果丰富的用户界面,而Java则在服务器端处理业务逻辑和...

    通过MyEclpise整合JAVA与FLEX进行通讯(通过将JAVA工程加到FLEX工程中)

    JAVA是一种广泛使用的后端编程语言,以其面向对象的特性、跨平台兼容性和强大的性能而闻名。FLEX则是一种基于ActionScript的前端开发框架,用于创建交互式的、基于Flash的用户界面,它能够运行在Adobe Flash Player...

    Flex与java通讯例子

    Flex与Java之间的通讯是Web开发中的重要一环,特别是在构建富互联网应用程序(RIA)时。Flex作为Adobe开发的开源框架,主要用于创建具有丰富用户界面的Web应用,而Java则是一种广泛应用的后端开发语言,提供了强大的...

    通过MyEclpise整合JAVA与FLEX进行通讯(通过将Flex工程加到Java web工程中)

    这一过程涉及到将Flex工程添加到Java Web工程中,以便在后端服务器和前端富互联网应用程序(RIA)之间建立数据交互。 首先,我们需要了解JAVA和FLEX的基本概念。JAVA是一种广泛使用的后端编程语言,常用于构建...

    Flex Soket与Java通讯

    Flex Socket与Java通讯是网络编程中的一个重要领域,它允许基于Adobe Flex的客户端应用程序与服务器端的Java应用进行数据交换。Flex是一种开源的、基于ActionScript的框架,常用于创建富互联网应用程序(RIAs)。而...

    Flex+blazeds+java发布/订阅聊天程序

    它基于ActionScript编程语言和Flex SDK,可以创建可跨浏览器运行的Flash应用程序。 2. **BlazeDS**:BlazeDS是Adobe提供的一个免费的服务器端数据推送技术,用于连接Flex客户端和Java应用程序。它提供了一套轻量级...

    java开源包6

    jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...

    java开源包9

    jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...

    java开源包4

    jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...

    java开源包101

    jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...

    java开源包5

    jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...

    java开源包8

    jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...

    java开源包10

    jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...

    flex4集成java

    通过深入理解 Flex 4 和 Java 的集成,开发者可以构建出既能充分利用 Flash Player 渲染能力,又能充分利用 Java 强大的后端功能的高质量应用程序。无论是企业级应用、数据分析工具还是实时通信系统,这种集成都能够...

Global site tag (gtag.js) - Google Analytics