Java與Flex學習筆記(20)---將flex頁面嵌入到jsp頁面中

如果我們只需要用到Flex的一部分功能,例如播放器功能,我們可以單獨把Flex頁面嵌入到Jsp頁面中。要想實現此功能,需要下載一個工程,將其覆蓋在服務器根目錄下即可。你可以在次下載:FlexModule_j2ee.zip


      在eclipse下新建一個web工程,將剛纔下載的工程解壓縮,然後將webtier文件夾下的內容覆蓋服務器根目錄下,如本人的:




      注意要將lib文件夾和jars文件夾下的jar包添加到到類路徑下,這樣就算是整合完成了吧。


     接着新建一個flex的mxml文件PlayVideo.mxml,將其放在WebContent下,代碼如下所示:


  1. <?xmlversionxmlversion="1.0" encoding="utf-8"?> 
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
  3. creationComplete="init()"> 
  4. <mx:Script> 
  5. <![CDATA[
  6.     import mx.controls.Alert;
  7.     private var rtmpURL:String="rtmp://localhost/oflaDemo";
  8.     private var nc:NetConnection=new NetConnection();
  9.     private var playerVideo:Video=new Video();
  10.     [Bindable]
  11.     private var stream:NetStream;
  12.     private function init():void{
  13.        playerVideo.width = 500;
  14.        playerVideo.height = 400;
  15.        connect();
  16.     }
  17.     private function connect():void{
  18.        nc.addEventListener(NetStatusEvent.NET_STATUS,netStatus);
  19.        nc.connect(rtmpURL);
  20.     }
  21.     private function netStatus(e:NetStatusEvent):void{
  22.        trace(e.info.code);
  23.        if(e.info.code=="NetConnection.Connect.Success"){
  24.            stream=new NetStream(nc);
  25.            playerVideo.attachNetStream(stream);
  26.            stream.play("chirisyu_ytywn.flv");
  27.            container.addChild(playerVideo);
  28.        }
  29.     }
  30. ]]> 
  31. </mx:Script> 
  32.     <mx:UIComponent id="container"></mx:UIComponent> 
  33. </mx:Application> 
<?xmlversion="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="init()">
<mx:Script>
<![CDATA[
    import mx.controls.Alert;
    private var rtmpURL:String="rtmp://localhost/oflaDemo";
    private var nc:NetConnection=new NetConnection();
    private var playerVideo:Video=new Video();
    [Bindable]
    private var stream:NetStream;
    private function init():void{
       playerVideo.width = 500;
       playerVideo.height = 400;
       connect();
    }
    private function connect():void{
       nc.addEventListener(NetStatusEvent.NET_STATUS,netStatus);
       nc.connect(rtmpURL);
    }
    private function netStatus(e:NetStatusEvent):void{
       trace(e.info.code);
       if(e.info.code=="NetConnection.Connect.Success"){
           stream=new NetStream(nc);
           playerVideo.attachNetStream(stream);
           stream.play("chirisyu_ytywn.flv");
           container.addChild(playerVideo);
       }
    }
]]>
</mx:Script>
    <mx:UIComponent id="container"></mx:UIComponent>
</mx:Application>


      這個文件實現的是之前用Red5播放視頻的減縮版。


      接着新建一個jsp文件,如下所示:


  1. <%@ page language="java"contentType="text/html; charset=UTF-8" 
  2.     pageEncoding="UTF-8"%> 
  3. <%@taglib uri="FlexTagLib"prefix="mm" %> 
  4. <!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
  5. <html> 
  6. <head> 
  7. <meta http-equiv="Content-Type"content="text/html; charset=UTF-8"> 
  8. <title>測試</title> 
  9. <style type="text/css"> 
  10.     #mess{ 
  11.        position: absolute; 
  12.        left: 250px; 
  13.        top: 25px; 
  14.        font-size: 22px; 
  15.     } 
  16.     #video{ 
  17.        position: absolute; 
  18.        left: 250px; 
  19.        top: 70px; 
  20.     } 
  21. </style> 
  22. </head> 
  23. <body> 
  24.     <div id="mess"> 
  25.     這是測試視頻: 
  26.     </div> 
  27.     <div id="video"> 
  28.        <mm:mxml source="PlayVideo.mxml"width="500" height="400"> 
  29.        </mm:mxml> 
  30.     </div> 
  31.     
  32. </body> 
  33. </html> 
<%@ page language="java"contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="FlexTagLib"prefix="mm" %>
<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">
<title>測試</title>
<style type="text/css">
    #mess{
       position: absolute;
       left: 250px;
       top: 25px;
       font-size: 22px;
    }
    #video{
       position: absolute;
       left: 250px;
       top: 70px;
    }
</style>
</head>
<body>
    <div id="mess">
    這是測試視頻:
    </div>
    <div id="video">
       <mm:mxml source="PlayVideo.mxml"width="500" height="400">
       </mm:mxml>
    </div>
   
</body>
</html>


    可以看出將mxml文件引入jsp需要做的事是:


    1.聲明引入標籤,如<%@tagliburi="FlexTagLib"prefix="mm"%>如果web.xml文件中沒有添加

  1. <taglib> 
  2.         <taglib-uri>FlexTagLib</taglib-uri> 
  3.         <taglib-location>/WEB-INF/lib/flex-bootstrap-jsp.jar</taglib-location> 
  4. </taglib> 
<taglib>
        <taglib-uri>FlexTagLib</taglib-uri>
        <taglib-location>/WEB-INF/lib/flex-bootstrap-jsp.jar</taglib-location>
</taglib>

,則會報錯。


     2.在<mm:mxml/>標籤中引入mxml文件,裏面有一些屬性,可以查看API,本人就不在此贅述了。


     好了,這樣就可以測試了,運行jsp文件,如果成功運行則證明成功了:



   

       當然,這個mxml用的是flex 3文件,如果換成flex4的話會報錯,因爲目前使用的jar包不支持Flex4標籤,不知道作者會不會更新。

 

 

原文地址:http://blog.csdn.net/youqishini/article/details/8062930

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章