注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

Flex 初接触  

2008-10-09 20:11:37|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Flex 是Adobe公司基于Flash player浏览器插件的客户端应用了。

微软也推出类似的技术silverlight ,不过可能现在flash控件占有市场比较大,很多人还是喜欢Flex吧,加上Flex还是开源的。这个算比较新的技术吧,就是可以提供丰富的客户端操作而已。所以我也看了一下。学起来还是很简单的,就像是原先的html+javascript一样,如果html委员会把html扩展一下,然后强制浏览器实现该标准应该也是可以的吧。但现在都由厂商采用浏览器插件的方法来做了。现在开始兴起的网页游戏,网页聊天工具是用这个来做的吧,可以写出很复杂绚丽的效果,还可以和http服务器进行数据交换。

这几个是主页,学习文档,参考之后都主要参考这里的吧,不知道什么是Flex的也可以去看一下:

http://www.adobe.com/products/flex/

http://www.adobe.com/devnet/flex/

http://www.adobe.com/support/documentation/en/flex/

http://livedocs.adobe.com/flex/3/html/help.html?content=Part2_DevApps_1.html

http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK;jsessionid=B23160BAAB158842755150AF72CA3C23

下面是我参考文档,写的一个简单的和php页面进行数据交换的例子。

(1) 先去上面的网站下载免费的Flex SDK,虽然也有“Adobe Flex Builder” 的eclipse插件可以方便开发,但是要钱的,我还是下载了个免费的sdk了。

下载flex_sdk_3.zip 下来,解压就可以用了,运行bin目录下的mxmlc.exe 文件就可以编译生成swf文件,

用法“mxmlc.exe   *.mxml” 指定项目的mxml文件就可以了

(2)编写一个widebright.mxml 文件如下,包含Flex控件定义和Actionscript。文件的格式说明和脚本语言参考前面提供网站。编译器什么的使用啊等等,语法啊都说的很清楚的。还是例子啦。

-------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    backgroundColor="#CCCCFF"
    backgroundAlpha="0">
<!-- widebright hahaha -->
    <mx:Script>
        <![CDATA[
          import mx.rpc.events.ResultEvent;
          import mx.rpc.events.FaultEvent;
          import mx.controls.Alert;
          
           private function initApp():void
           {
                          
           }
           private function loginHandle():void
           {
              if(textboxName.text==""||textboxPWD.text=="")
             {
                 Alert.show("请输入用户名和密码!");
             }else
             {
                 userRequest.send();
            
             }

          }
          //网页请求的结果
          private function resultHandler(event:ResultEvent):void {
               var islogIn:String = event.result.toString();
               
                if (islogIn =="yes")
                {
                  image1.source="images/1.jpg"
                }else{
                  image1.source="images/2.jpg"
                }
                image1.visible=true;
        
          }
         private function handleFault(event:FaultEvent):void
         {
                 Alert.show(event.fault.faultString, "网络错误!");

         }


      ]]>
    </mx:Script>

<mx:HTTPService id="userRequest" url="http://localhost/php/login.php" resultFormat="text"
                  method="POST"
                  result="resultHandler(event)"
                  fault="handleFault(event);">
    <mx:request xmlns="">
      <username>{textboxName.text}</username>
      <password>{textboxPWD.text}</password>
    </mx:request>
</mx:HTTPService>

<mx:Image id="image1" source="images/1.jpg" width="100" height="100" visible="false"
/>

<mx:Form id="myForm" backgroundColor="#FF7F24" >
<mx:filters>
<mx:DropShadowFilter distance="5"/>
</mx:filters>
      <mx:FormItem label="名字:">
         <mx:TextInput id="textboxName" width="100" horizontalCenter="0" maxChars="20"/>
     </mx:FormItem>
     <mx:FormItem label="密码:">
         <mx:TextInput id="textboxPWD" width="100" displayAsPassword="true" maxChars="20"/>
     </mx:FormItem>

     <mx:FormItem label="">
        <mx:Button id="btnLogin" label="登录" click="loginHandle()"/>
    
     </mx:FormItem>
   
</mx:Form>

</mx:Application>
--------------------------------------------------------------------------

上面其实是个简单的登录框。

(3)执行编译命令,生成swf文件

D:\flex_sdk_3>.\bin\mxmlc.exe widebright的测试项目\widebright.mxml
Loading configuration file D:\flex_sdk_3\frameworks\flex-config.xml
D:\flex_sdk_3\widebright的测试项目\widebright.swf (214516 bytes)

(4)另外的调用swf的代码如下,和php页面代码

-----------------------------------------

<div>
<embed src="widebright.swf" width="400" height="300" wmode="transparent" type="application/x-shockwave-flash">
</div>

--------------------------

<?php
        if( $_REQUEST["username"]   =="widebright" && $_REQUEST["password"]   =="test" ){
            echo "yes";
        }else{
            echo "no";
       }
  
?>
-----------------------------------------

其实在php上面你可以做访问数据库啊等东西的,我这里为了简单就没有写了。

(5)运行之后效果如下

Flex 初接触 - widebright - widebright的个人空间

Flex 初接触 - widebright - widebright的个人空间

最后的,需要注意的是 swf falsh文件要和 php文件放在同一个服务器上才行,因为他做了防止跨域返问的安全性限制了。不然访问网络时会出现”Security error accessing url“ 错误提示。好像也可以通过配置什么网站跨域文件来解除这个限制的,不过很是复杂,需要在http的服务器上提供访问权限,具体可以去网上查找相关文档。

Flex的优点还是的图形优势吧,客服端的显示效果优势,我这个例子没有体现出来。其实可以用来播放音乐、视频等等功能的。

  评论这张
 
阅读(462)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017