Blazeds 与FLEX的发布问题 消息实现
在通过blazeds实现消息时,FLEX发布时需要在设置里面将flexserver中将contextroot与web应用的contextroot名称设置成一样的!否则就不能正确的接收到消息
以下是相关的参数文章
关键字: flex blazeds
来自:http://hi.baidu.com/%C7%E1%BD%A3/blog/item/33ce7219256b894d42a9ad30.html
Flex 调用远程或所在web应用的 BlazeDS服务时,必须建立和远端的通道channel,才能正常通信。
1. 通常的方式是 Flex 在编译时就指定远程的端点 Endpoint,service-config.xml 中的Endpoint 配置是 例如:
Xml代码
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf"
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf"
编译时指定的方式是在加编译参数,例如:
引用
-services "services-config.xml" -context-root "/HelloBlazeds"
services-config.xml 需要放在当前目录下,或者指定BlazeDS所在的配置文件路径。
http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=12209
2. 在 <mx:RemoteObject/> 对象中指定Endpoint参数:
例如:
Xml代码
<mx:RemoteObject id="roOrder" destination="Hello" showBusyCursor="true" endpoint="http://server:8080/HelloBlazeDS/messagebroker/amf" >
<mx:RemoteObject id="roOrder" destination="Hello" showBusyCursor="true" endpoint="http://server:8080/HelloBlazeDS/messagebroker/amf" >
1) 全路径: endpoint="http://server:8080/HelloBlazeDS/messagebroker/amf" >
2) 基于contextRoot: endpoint="/HelloBlazeDS/messagebroker/amf" >
3) 基于当前路径: endpoint="messagebroker/amf" >
总结:
对于Flex+BlazeDS集成开发,方式1,和2.1),2.2) 对于企业应用来说都不是最佳方案,因为他将 contextroot写死了,不便于移植,也就是说,编译后的 swf 放到其他应用下无法调用BlazeDS服务;
相关文档:
一、为什么要重写组件
1、在FLEX已有组件无法满足业务需求,或是需要更改其可视化外观等特性时,直接进行继承扩展。举例,继承BUTTON组件的长文本却不自动换行的自定义控件。
2、为了模块化设计或进一步重用,需要对FLEX组件进行组合。比如一个包括TEXTAREA,BUTTON的复合控件。
二、重写组件需要经常换位思考的三个角色
......
用FLEX如何取浏览器地址栏中的域名信息?我查找到两种方法:
第一种方法是用ExternalInterface.call('window.location.href.toString'),它的值就是地址栏中的域名
有以下几点需要注意:
1.当Flash和加载它的网页不同域时,需要在网页在 PARAM 或 EMBED 标签中进行设置AllowScriptAccess 为“always”
关于 ......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12" creationComplete="init()">
<mx:Script>
<!--[CDATA[
import mx.utils.*;
import flash.net.*;
......
在用flex做Web应用时为了扩展应用程序功能,势必会更多的同浏览器进行交互,这样就会用到下面介绍的知识
1、在Flex中实现URL 跳转(使用flash.net.navigateToURL()方法如:)
/*
* param1: 要跳转的URL
* param2: 跳转方式 _blank /_self
*/
navigateToURL(new URLR ......
1:假如你要深复制一个类A
public class A
{
public var vo:B
}
你首先要做的是注册类,例如:
public static function registerClass():void
{
//把子类注册
PackUtil.registerClass(B);
}
//接下来就是克隆:
var cloneA:A=clone(A);
cloneA就是我 ......