技术开发 频道

Java程序员学习Flex和BlazeDS十三理由

  理由九:可以通过Java来扩展和修改BlazeDS

  假如你想添加特殊的日志来记录苏打调配服务被调用的情况,那么你可以扩展标准的Java适配器来添加日志功能。

  首先,添加一个继承了JavaAdapter的Java类:  

1 import flex.messaging.services.remoting.adapters.JavaAdapter.
2
3   public class TimingJavaAdapter extends JavaAdapter {

   其次,重载invoke()方法:

1  public Object invoke(Message message) {
2
3   RemotingMessage remotingMessage = (RemotingMessage) message;
4
5   String operation = remotingMessage.getOperation();
6
7   String destination = remotingMessage.getDestination();
8
9   Logger.info("calling " + operation + " on destination " + destination);
10
11   Object data = super.invoke(message);
12
13   return data;
14
15   }

   这个方法中,你可以看到调用之后的操作和调用的目的地(destination)。这种方法也能用来处理其它一些问题,比如记录向服务器发送调用需要多长时间。

  理由十:HTML和JSP也能调用BlazeDS

  从HTML和JSP也能调用BlazeDS,这种调用有几种不同的实现方式,比如通过Browser Manager或fflashVarsf来实现。Flex应用能够读取由HTML页面设置的fflashVarsf。

  比方说你想要通过HTML页面来发送你的用户名和准备预定的苏打类型,你可以在HTML页面这样设置flashVars:  

1 <object id='SodaSample' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab' height='100%' width='100%'>
2         <param name='src' value='SodaSample.swf'/>
3         <param name='flashVars' value='username=ryan&type=coke'/>
4         <embed name='mySwf' src='SodaSample.swf' pluginspage='http://www.adobe.com/go/getflashplayer' height='100%' width='100%'     flashVars='username=ryan&type=coke'/>
5 </object>

  然后,在Flex应用中,你可以通过读取应用参数来获取这些变量:  

1 var username:String;
2
3   if (Application.application.parameters.hasOwnProperty("username")) {
4
5   username = Application.application.parameters.username;
6
7   }
8
0
相关文章