Flash专栏: 基础教程 | 技巧运用 | MTV实例教程 | 游戏实例教程 | 实例教程 | AS教程(new)
photoshop专栏: 基础 | 进阶 | 技巧总汇 | 精彩实例 | 文字特效 | 滤镜魔术 | 实际应用
网页设计: Dreamweaver教程 | FireWorks教程 | CorelDraw设计 | Freehand/Illustrator教程 | 音乐转换教程
其他教程: 操作系统 | 程序设计 | 网站开发 | 图形图像 | 数据库 | 网络技术 | 安全相关 | 认证考试 | 硬件知识 | 服务器
Flash专栏>Flash技巧运用>关于flash+java   返回上一页

  日期:2006-03-17 10 作者:Leon000 来源:闪吧
天气预报 IP地址 手机号码 邮编 翻译 在线代理 在线评书 好dj


关于flash+java


首先,我是个新手,写的东西也是面向一些对as2有点了解,刚刚接触flash后台连接的新手,有些东西写的有点太细了,老手们看了不要笑话,太仔细出错的概率也高,帮忙找找错误,修改一下,谢谢!
1,需要tomcat5.5,下载地址:
    http://tomcat.apache.org/download-55.cgi#5.5.15
点击里面的Windows Executable即可下载安装;
2,需要jdk1.5支持,下载地址:
    https://sdlc1b.sun.com/ECom/EComActionServlet;jsessionid=DBFB8FAB9FE47740385610A2FB5D7AD0
3,需要openamf,下载地址:
    http://prdownloads.sourceforge.net/openamf/openamf-1.0RC11-examples.zip?download
4,需要flash remoting components for flash8 actionscript2.0,就是那个remoting组件啦,下载地址:
    http://www.macromedia.com/software/flashremoting/downloads/components/#flr_fl8
以上都是官方网址,都是免费的
最后,需要flash8(昏特,这还用说*_*)
然后就是安装了,我的顺序是:remoting组件 ->jdk ->tomcat ->openamf,这里面remoting组件随便什么时候装的,后面3个的顺序一定要那样的,最后那个openamf是个.zip文件,解压缩后会得到一个openamf.war(这时应该已经装了tomcat了),把那个.war文件copy到tomcat5.5/webapps下面,启动tomcat 5.5,webapps下就会多了个文件夹openamf(如果安装结尾选择了自动运行tomcat,那么只要把.war拷贝到webapps下机会自动生成openamf文件夹了),openamf就算OK了,简单吧
下面就开始试验一下吧:

首先是java,也就是服务器端
(如果是新手,不要觉得java神秘,java写起来和as基本上差不多,java的设计理念就是要设计出让人觉得容易写的语言,嘿嘿,我也是个新手:)),java的任务就是接收flash传来的消息,然后回复一个消息。
代码如下:

public class TestBean{
    public String getMessage(){
        return "Hello World!!";
    }
}

绝对简单啊,就是定义了一个方法getMessage,返回一个String,用记事本保存为TestBean.java文件。
如果有人不知道java怎么个弄法,那我就来充一回行家,如果知道的,直接跳到“#”处。
安装jdk后去看一下你的jdk装哪儿了(如果装的时候只顾着按next没注意装哪儿,那多半在c:\program files\java\j2dk50了,我是装在d:\java\jdk)打开里面的一个bin文件夹,然后,copy下这个地址,我的就是D:\java\jdk\bin了。右击“我的电脑”,选属性 ->高级 ->环境变量,出来个对话框,下面一个是系统变量,双击里面的Path,然后在变量值(v)的最后面加上一个分号,后面是你的bin的地址,然后,一路按确定。
这时,你就可以编译.java了,步骤简单说一下:
假设你的.java放在D:\myJava下面了
开始菜单 ->运行 ->cmd,打开了dos,然后输入D:,回车;输入:cd myJava,回车;再输入:javac TestBean.java,回车。这时,稍微等一下,等dos有了反应,去D:\myJava看看,有一个TestBean.class文件,我们要的就是它了
#把编译好的.class文件copy到Tomcat 5.5\webapps\openamf\WEB-INF\classes下面,重启一下tomcat,服务器端的工作OK了
这里注意,.class文件有任何改动,都要停止tomcat再启动的
接下来是flash,也就是客户端
新建2个文件:connectTomcat.fla、connectTomcat.as,这里我强烈建议as和fla文件分开,fla里面只写一句代码,写在主时间轴的第一帧上:#include "connectTomcat.as"  这样fla和as完全分开,便于管理和协作。
接下类打开connectTomcat.as,输入下列代码:

import mx.remoting.Service;
import mx.remoting.PendingCall;
import mx.rpc.RelayResponder;
import mx.rpc.FaultEvent;
import mx.rpc.ResultEvent;
//新建一个Service对象:flashtestService,用来连接咱们那个TestBean.class的
var flashtestService:Service = new Service("http://localhost:8080/openamf/gateway", null, "TestBean", null, null);
var pc:PendingCall = flashtestService.getMessage();
//下面这一句的后两个参数,就是我们要调用的getMessage方法,分别加上_Result和_Fault
pc.responder = new RelayResponder(this, "getMessage_Result", "getMessage_Fault");
//一切顺利就运行getMessage_Result(),里面的参数re就是返回的内容,re.result就是它的值,在我们这个例子里,就是"Hello World!!"这个字符串,不顺利就运行getMessage_Fault。
function getMessage_Result(re:ResultEvent):Void {
    trace(re.result);
}
function getMessage_Fault(fe:FaultEvent):Void {
    trace("Pity!");
}

保存.as文件,到fla里调试,应该能看到弹出对话框里显示着: Hello World!!
我自己学的时候主要得益于下面2篇文章:
http://www.flashempire.com/school/tutorview.php?id=479
http://www.flashempire.com/school/tutorview.php?id=481
http://blog.xuite.net/jameschih/java/5313683
嗯!明明是3个地址嘛!呵呵,前2个是连着的,里面具体讲述了flash+remoting+jrun4的用法,但remoting和jrun都是要钱的啊,盗版的用着总不如正版的舒服嘛,第3个是关于flash+openamf+tomcat的,但对于新手来说可能还不够详细。
如果对我写的教程有任何意见,欢迎回帖,我会尽快改的
写这个教程的目的其实是为了问一个问题,我怕别人不知道我问什么,就写的过分详细,后来干脆改成教程得了,问题来了
我用的flash+openamf+tomcat5.5
我写了个java,可以生成一个xml文档并存储在.class同目录下,我用jcreator做的,在jcreator里运行一切正常,但到flash里尝试就歇菜了,flash端可以接收return的address,却没有生成xml,我就不懂了,是不是服务器限制什么的啊,这里肯定有高手,帮帮我吧!
我的java代码如下:

import java.io.*; 
import javax.xml.parsers.*; 
import org.w3c.dom.*; 
import org.xml.sax.*; 
import org.apache.crimson.tree.XmlDocument; 
public class XMLWrite{ 
private String address; 
public String writeXML(String outFile){ 
address = outFile; 
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = null; 
try { 
db = dbf.newDocumentBuilder(); 
} catch (ParserConfigurationException pce) { 
System.err.println(pce); 
System.exit(1); 

Document doc = null; 
doc = db.newDocument(); 
Element root = doc.createElement("root"); 
doc.appendChild(root); 
for(int i=0; i<10; i++){ 
Element sort = doc.createElement("sort"); 
sort.setAttribute("folder","ttttt"); 
root.appendChild(sort); 

try{FileOutputStream outStream = new FileOutputStream(address); 
OutputStreamWriter outWriter = new OutputStreamWriter(outStream); 
((XmlDocument) doc).write(outWriter, "GB2312"); 
outWriter.close(); 
outStream.close(); 
}catch(FileNotFoundException e){ 
System.err.println(e); 
System.exit(1); 
}catch(IOException e){ 
System.err.println(e); 
System.exit(1); 

return address; 

public static void main(String[] args){ 
XMLWrite xw=new XMLWrite(); 
String s=xw.writeXML("xxx.xml"); 
System.out.println(s); 

我教程也发了,请各位高手帮帮忙啊!谢谢!


 
高手云集 版权所有 1998-2006