首先,我是个新手,写的东西也是面向一些对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);
}
}
我教程也发了,请各位高手帮帮忙啊!谢谢!