- 浏览: 420658 次
- 性别:
- 来自: 济南
-
最新评论
-
nianshi:
slideDown就是show的滑动效果版本, slideUp ...
Jquery零碎代码收藏 -
nianshi:
以后编写JS代码,少写<div onclick=&quo ...
Jquery零碎代码收藏 -
nianshi:
获取匹配元素相对父元素的偏移var p = $("p ...
Jquery零碎代码收藏 -
nianshi:
获取匹配元素在当前窗口的相对偏移var p = $(" ...
Jquery零碎代码收藏 -
wuchu:
谢谢
Flex 读取XML配置文件总结
以下介绍几种最为常见和实用的FLEX与现有开发语言通信的方法:
1.C#
2.PHP
3.JAVA
1.Flex与C#通信(.net开发中常用)
Flex端代码:
public static function SendMessage(objXML:XML,objResultHandle:Function):void
{
var objHttpService:HTTPService = new HTTPService();
objHttpService.url = "http://localhost:8085/upfiledata.aspx
"; //发送到的C#页面
objHttpService.resultFormat = "e4x";
objHttpService.addEventListener(ResultEvent.RESULT,objResultHandle);
objHttpService.method = "POST";
objHttpService.contentType = "application/xml";
objHttpService.send(objXML); //objXML 要发送的数据
}
public function objResultHandle(evt:ResultEvent):void
{
evt //接收到的数据
}
C#端:
protected void Page_Load(object sender, EventArgs e)
{
XmlDocument objProtocolDom = new XmlDocument();
objProtocolDom.Load(Request.InputStream); //objProtocolDom接收来自Flex端所发送的数据流
Response.ContentType = "text/xml";
Response.Write(objResultDom.OuterXml); //向Flex端下发数据流
}
2.Flex与php通信
Flex代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml
" creationComplete="onInit()" xmlns="*" layout="absolute" backgroundGradientColors="[#ffffff, #c0c0c0]">
<mx:Script>
<![CDATA[
public function onInit():void
{
userRequest.send();
}
]]>
</mx:Script>
<mx:HTTPService id="userRequest" url="request.php" useProxy="false" method="POST">
<mx:request xmlns="">
<username>{username.text}</username><emailaddress>{emailaddress.text}</emailaddress>
</mx:request>
</mx:HTTPService>
<mx:Form x="22" y="10" width="356">
<mx:HBox>
<mx:Label text="Username"/>
<mx:TextInput id="username"/>
</mx:HBox>
<mx:HBox>
<mx:Label text="Email Address"/>
<mx:TextInput id="emailaddress"/>
</mx:HBox>
<mx:Button label="Submit" click="userRequest.send()"/>
</mx:Form>
<mx:DataGrid id="dgUserRequest" x="22" y="128" dataProvider="{userRequest.lastResult.users.user}">
<mx:columns>
<mx:DataGridColumn headerText="User ID" dataField="userid"/>
<mx:DataGridColumn headerText="User Name" dataField="username"/>
</mx:columns>
</mx:DataGrid>
<mx:TextInput x="22" y="292" id="selectedemailaddress" text="{dgUserRequest.selectedItem.emailaddress}"/>
</mx:Application>
php代码:
<?php
/* Thanks to Pete Mackie for the code below */
Define(’DATABASE_SERVER’, ’localhost’);
Define(’DATABASE_USERNAME’, ’root’);
Define(’DATABASE_PASSWORD’, ’root’);
Define(’DATABASE_NAME’, ’flextest’);
# Connect to the database
$mysqli = new mysqli(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME);
# Check connection
if (mysqli_connect_errno()) {
printf("MySQL connect failed: %s\n", mysqli_connect_error());
exit();
}
# Quote variable to make safe
function quote_smart($value) {
global $mysqli;
# Stripslashes
if (get_magic_quotes_gpc())
$value = stripslashes($value);
# Quote if not integer
if (!is_numeric($value))
$value = $mysqli->real_escape_string($value);
return $value;
}
if (!empty($_POST) && $_SERVER[’REQUEST_METHOD’] == ’POST’) {
if ($_POST[’emailaddress’] && $_POST[’username’]) {
# Add the user
$query = sprintf("Insert INTO users VALUES (’’, ’%s’, ’%s’)",
quote_smart($_POST[’username’]), quote_smart($_POST[’emailaddress’]));
if (!@$mysqli->query($query
)) {
printf("’flextest’ user database query insert error: %s\n", $mysqli->error);
$mysqli->close();
exit();
}
}
}
# Return a list of all the users
if (!$result=@$mysqli->query("Select
* from users")) {
printf("’flextest’ user database query select error: %s\n", $mysqli->error);
$mysqli->close();
exit();
}
$xml_return = "<users>";
while ($user = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$xml_return .=
"<user><userid>".$user[’userid’]."</userid><username>".$user[’username’]."</username><emailaddress>".$user[’emailaddress’]."</emailaddress></user>\n";
}
$xml_return.= "</users>";
$mysqli->close();
echo $xml_return;
?>
3.FLEX与JAVA之间的通信
这里介绍一种方法:使用BlazeDS实现Java和Flex通信
BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。这篇文章中,我讲述一种方法(也许不是最好的)使得我能够成功地利用 BlazeDS 和 Flex 建立一个简单的程序。使用的 IDE 是 eclipse, 而并非 Flex Builder. 下面我将逐步介绍怎么实现这个简单的程序。
1. 安装 JDK 和 Tomcat, 并且实现成功配置。
2. 安装 Flex SDK. 详细请见官方文档
3. 下载 BlazeDS , 如果你使用的是 turnkey 版本(建议下载此版本)里面实际上包含了 Tomcat 服务器了。
下面介绍只安装 BlazeDS 的 web application 版本(但是仍然下载的是 Turnkey 版本)。
下载的 zip 包里面包含了:
blazeds.war: 主要的 BlazeDS war 文件,用来建立你的 BlazeDS 应用程序。
Sample.war 就是 BlazeDS 例子了。
Ds-console.war ,简单的 BlazeDS 部署管理程序。
每一个 war 程序都是独立的,假如你使用 J2EE 的 web 应用程序选项,那么你必须有一个 J2EE 应用服务器或者 servlet 容器。比如使用 Tomcat. 而且必须把刚才的三个 war 文件部署在 Tomcat_Home ( tomcat 安装目录)下的 webapps 目录下。然后重启 Tomcat 服务器,在浏览器输入: http://localhost:8080/samples 如果看到显示页面代表就成功了。如果你的应用程序需要使用 HSWLDB 数据库,那么也拷贝 .zip 文件中的 sampledb 目录到 webapps 目录下,然后启动数据库。启动方法很简单:到 sampledb 目录下,执行 startdb.bat 就可了 (windows OS) 。 提示:可以的话,在你的 Eclipse 目录下,找到 eclipse.ini 把最大内存数改成 512.
4. ( 可选 ) 配置 Tomcat 的用户角色。即在 Tomcat_Home/conf/tomat-users.xml 添加以下语句:
Java代码
<role rolename= "manager" /><user username= "abhi" password= "abhi" roles= "manager" />
<role rolename="manager"/><user username="abhi" password="abhi" roles="manager"/>
5. 利用 Eclipse 建立 Flex Project 。工程名字叫做 BlazeApp.
Application Type 选择 web application, 服务器选择 J2EE. 关联 WTP, 至于代码文件保存目录自定义。 Next 。
6.设置 J2EE 服务器。
我们选择 Tomcat, 可能需要手动配置 (new) 。然后选择 flex war 文件,即我们放在 webapps 目录下的 blazeds.war.然后 next.
7. 接着,默认设置,也可自定义。
接着 next. 其实到这里已经完成了 project 建立.
8. 接下来你可以在 eclipse 中可以看到整个工程的所有文件以及配置。在开发之前,可能需要修改 context root 配置。点击 BlazeApp 右键,选择属性,然后见到如图 , 修改 context root 值为 BlazeApp. (默认的是 WebContent, 好像不更改也可以。自行测试 … )。
9. 创建 Java 文件。
点击 src 文件夹,然后创建 java class. 类的包为 hello, 名字为 HelloWorld.
Java代码
package hello;
public class HelloWorld {
public String sayHelloTo(String str) {
System.out.println( "Hello " + str);
return "Hello " + str; }
}
package hello; public class HelloWorld {public String sayHelloTo(String str) {System.out.println("Hello " + str); return "Hello " + str; } }
10. 在 BlazeApp.mxml 文件中新建一个 text 和一个按钮,来显示从 HelloWorld 传回来的信息。
Xml代码
<? xml version = "1.0" encoding = "utf-8" ?>
< mx:Application xmlns:mx = "http://www.adobe.com/2006/mxml
" viewSourceURL = "srcview/index.html" >
< mx:Script >
<![CDATA[ import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
[Bindable]
private var helloResult:String;
private function sayHelloTo():void {
ro.sayHelloTo(inputText.text);
}
private function resultHandler(event:ResultEvent):void {
helloResult = event.result as String;
} ]]> </ mx:Script >
< mx:RemoteObject id = "ro" destination = "helloworld" result = "resultHandler(event)" />
< mx:HBox width = "100%" >
< mx:TextInput id = "inputText" />
< mx:Button label = "Submit" click = "sayHelloTo()" />
</ mx:HBox >
< mx:Label text = "{helloResult}" />
</ mx:Application >
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml " viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; [Bindable] private var helloResult:String; private function sayHelloTo():void { ro.sayHelloTo(inputText.text); } private function resultHandler(event:ResultEvent):void { helloResult = event.result as String; } ]]> </mx:Script> <mx:RemoteObject id="ro" destination="helloworld" result="resultHandler(event)" /> <mx:HBox width="100%"> <mx:TextInput id="inputText"/> <mx:Button label="Submit" click="sayHelloTo()"/> </mx:HBox> <mx:Label text="{helloResult}"/> </mx:Application>
11. 定义 remote object 使你的 flex 程序能够调用 java 类。
首先来配置 /WEB-INF/flex/remoting-config.xml 文件,添加以下粗体部分来新增一个destionation—HelloWorld 类。
Xml代码
<? xml version = "1.0" encoding = "UTF-8" ?>
< service id = "remoting-service"
class = "flex.messaging.services.RemotingService" >
< adapters >
< adapter-definition id = "java-object" class =
"flex.messaging.services.remoting.adapters.JavaAdapter" default =
"true" />
</ adapters >
< default-channels >
< channel ref = "my-amf" />
</ default-channels >
< STRONG > < destination id = "helloworld" >
< properties >
< source > hello.HelloWorld </ source >
</ properties >
</ destination > </ STRONG >
</ service >
12. 配置结束。
然后选择 BlazeApp 项目,选择在服务器上执行。即浏览地址为: http://localhost:8080/BlazedApp/BlazedApp.html 如果你能在输入框输入字段之后,点击按钮能返回 Hello,XXX 的信息,就代表成功了。
如图:
发表评论
-
Flex小记录
2011-02-24 10:18 1307Flex读取XML: <mx:HTTPServic ... -
flex实现滑动显示隐藏效果
2010-12-30 15:30 1617鼠标划过的时候显示菜单栏 ,鼠标移开后隐藏菜单栏。比较常用 ... -
flex DataTimePicker时间控件
2010-12-27 11:54 1327两种DatatimePicker: 1.Datatim ... -
ActionScript 生成伪Guid
2010-12-24 09:52 1222在一个Flash制作的图片上传程序中(使用了FileRefer ... -
Flex中Image组件怎么才能非等比例拉伸图片
2010-12-23 15:49 1521Image组件怎么才能非等比例拉伸图片 设 ... -
Flex中Accordion用法
2010-12-23 11:45 3092<? xml version = & ... -
Flex(替代session过期)实现用户长时间不操作要求重新登录的处理
2010-12-23 11:08 1515flex(替代session过期)用户长时间不操作要求重新登录 ... -
ActionScript 3.0 Socket编程
2010-12-23 09:56 1188在使用ActionScript3.0进行编程 ... -
12个简单易用的flex函数
2010-12-21 10:10 11541.拷贝内容到剪贴板: ... -
Flex自定义控件——Pagebar分页控件
2010-12-20 09:41 5280开发时经常遇到用一个DataGrid分页显示 ... -
Flex资源,很全,很牛!
2010-12-20 09:30 14731、as3ebaylib http://code ... -
Flex 窗体 最大化、最小化实例
2010-12-20 09:28 2728---导入flexMdi.swc (http ... -
在Flex中复制文字到操作系统的剪贴板
2010-12-15 11:18 1254这个实例演示了怎么样使用System. ... -
Flex让Slider控件拖动时显示Tooltip
2010-12-14 16:10 1925格式化与自定义Slider中显示的Tooltip ... -
Flex给Alert加个Icon
2010-12-14 16:05 1292给Alert加个Icon 很简单只要先 Embed 一 ... -
在Flex中用Validator验证数字、字符串、Email、电话号码等
2010-12-14 09:54 4334mx.validators ... -
Flex中使用FileReference类下载文件
2010-12-14 09:47 1805下面的实例演示了Flex中的 File ... -
Flex使用ArrayCollection的filterFunction属性过滤DataGrid
2010-12-14 09:42 1818下面的实例演示了在Flex中怎样使用 ... -
Flex 树形控件(Tree )的使用
2010-12-13 16:24 3484一、树形控件的常用属性 1、dragMoveE ... -
FLEX3中应用CSS完全详解手册(下)
2010-12-13 11:40 892myTabs中的设置 cornerRadiusTab ...
相关推荐
3. **FLEX与JAVA通信**: 对于JAVA,通常使用 BlazeDS 或 GraniteDS 这样的中间件来实现AMF(Action Message Format)通信,这是一种更高效的数据交换格式。 - FLEX端: - 配置HTTPService或WebService组件,...
FLEX 与现有开发语言的通信全面解析 java、c#、php的一些简单介绍、与实现
在C#环境中,可以利用AMFPHP的C#版本(如Red5Pro)来实现Flex与C#的AMF通信。 3. **BlazeDS**:BlazeDS是Adobe提供的官方解决方案,它为Java服务器提供了AMF支持。虽然J2EE是其主要目标,但通过第三方库(如...
1. **Flex与C#连接**:Flex通常与服务器端技术如Java、PHP或C#结合使用,来处理数据库操作。C#是.NET框架的一部分,可以创建Web服务(如WCF或ASMX)作为Flex应用程序的数据源。通过HTTP或AMF(Action Message Format...
- **Flex Builder 3**:这是一种专为Flex开发而设计的IDE(集成开发环境)。它提供了代码提示、调试工具、布局辅助等功能,极大地提高了开发效率。 - **ActionScript 3.0**:这是Flex使用的脚本语言,它基于...
5. **ActionScript实现(xxtea_ActionScript.txt)**:ActionScript主要用于Adobe Flash和Flex开发,其XXTEA实现则可应用于Flash游戏或应用中的数据加密。 6. **C#实现(xxtea_c#.txt和xxtea.cs.zip)**:C#是微软...
它支持多种编程语言,如 PHP、Python 和 Java,可以处理静态和动态内容,提供强大的扩展性和稳定性。 4. **Asp.Net**:Asp.Net 是微软的服务器端Web应用程序框架,用于构建高性能、安全的Web应用。它支持多种编程...
配置 Thrift 时,可以指定要安装的语言包,例如 C++,并排除不需要的语言,例如 C#、Erlang、Perl、PHP 和 Haskell。如果需要指定 Java 环境变量,可以在配置时使用 `JAVAC` 参数。配置完成后,通过 `make` 和 `sudo...
ActionScript 3.0宝典是专为Flash和Flex开发人员设计的一本深入学习ActionScript 3.0编程语言的书籍。本书通过具体实例对ActionScript脚本语言的灵活运用进行了详细说明,特别适合希望深入了解和应用ActionScript ...
2. **无状态性**:指每次请求之间没有依赖关系,服务器不保存客户端的状态信息。 此外,文档还提到了HTTP报头的一些注意事项,例如`Pragma:no-cache` 和 `Cache-Control:no-cache`,这些字段用于控制缓存机制。需要...
- **编程语言与框架**:C++、VC#.NET、J2EE、Spring、Struts、Hibernate (SSH)、Java、ACE 网络编程 - **操作系统**:Linux - **多媒体技术**:DirectShow、Flash ActionScript、PHP JSON - **数据库管理系统**:...
- **编程语言**:涵盖了JAVA、.NET、C#、C/C++、COBOL、VB.NET、PHP、DELPHI等。 - **操作系统**:包括WINDOWS、LINUX、UNIX、SOLARIS、OS/390等。 - **数据库**:支持ORACLE、INFORMIX、DB2、MS SQL SERVER、MS-...