由于工作需要开始研究Flex和Fms,把学习过程中的心得记录下来
分类为如下几个系列:
学习资源系列文章
flex,fms名称解释和学习资源
http://www.cnblogs.com/aierong/archive/2008/12/30/flex1.html
视频聊天,会议开发实例系列文章
Flex和Fms3打造在线聊天室(利用NetConnection对象和SharedObject对象)<视频聊天,会议开发实例1>
http://www.cnblogs.com/aierong/archive/2009/01/09/flex_fms_chat.html
Fms3和Flex打造在线视频录制和回放<视频聊天,会议开发实例2>
http://www.cnblogs.com/aierong/archive/2009/01/10/flex_fms_video_start.html
Fms3和Flex打造在线多人视频会议和视频聊天(附原代码)<视频聊天,会议开发实例3>
http://www.cnblogs.com/aierong/archive/2009/01/14/Flex_Fms_VideoChat.html
免费美女视频聊天,多人视频会议功能加强版本(Fms3和Flex开发(附源码))<视频聊天,会议开发实例4>
http://www.cnblogs.com/aierong/archive/2009/01/30/chatroom_Flex_Fms.html
免费网络远程视频会议系统,免费美女多人视频聊天(附源码下载)(Flex和Fms3开发)<视频聊天,会议开发实例5>
http://www.cnblogs.com/aierong/archive/2009/02/13/chatroomflexfms.html
开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))<视频聊天,会议开发实例6>
http://www.cnblogs.com/aierong/archive/2009/02/17/chatroomflexfmsair.html
Air版免费视频成人聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))<视频聊天,会议开发实例7>
http://www.cnblogs.com/aierong/archive/2009/02/24/Air_chatroom_flex_fms.html
FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统((Flex,Fms3联合开发))<视频聊天,会议开发实例8>
http://www.cnblogs.com/aierong/archive/2009/03/06/chatroom_meeting.html
Sqlite数据库系列文章
Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表,以及同步和异步执行模式)
http://www.cnblogs.com/aierong/archive/2009/01/22/flex_Sqlite_1.html
Adobe AIR中使用Flex连接Sqlite数据库(2)(添加,删除,修改以及语句参数)
http://www.cnblogs.com/aierong/archive/2009/01/22/flex_Sqlite_Add_Delete_Update.html
Adobe AIR中使用Flex连接Sqlite数据库(3)(查询)
http://www.cnblogs.com/aierong/archive/2009/01/23/flex_air_Sqlite_Query.html
Adobe AIR中使用Flex连接Sqlite数据库(4)(事务)
http://www.cnblogs.com/aierong/archive/2009/01/23/flex_sqlite_commit_rollback.html
Flex Air开发SQLite小结,SQLite开发工具及SQLite与Sql Server的语法差异汇总
http://www.cnblogs.com/aierong/archive/2009/02/19/flexairsqlite.html
Flex Builder系列文章
推荐几个Adobe Flex Builder 3的插件(代码格式化和fms服务器通讯文件(main.asc)编写)
http://www.cnblogs.com/aierong/archive/2009/02/11/1388277.html
Fms系列文章
Fms3中client端与server端交互方式汇总
http://www.cnblogs.com/aierong/archive/2009/01/15/fms3_main.html
Flex(flash)检测摄像头的3种状态(是否被占用,没安装摄像头,正常)
http://www.cnblogs.com/aierong/archive/2009/02/20/CameraFlexFlash.html
Flex系列文章
Flex控制光标(CursorManager)方法总结
http://www.cnblogs.com/aierong/archive/2009/01/19/flex_CursorManager.html
Flex应用程序中嵌入各种类型的资源方法总结
http://www.cnblogs.com/aierong/archive/2009/01/19/flex_Embed.html
Flex组件开发总结-20090209
http://www.cnblogs.com/aierong/archive/2009/02/09/1386858.html
Flex组件的项目渲染器(ItemRenderer)使用总结
http://www.cnblogs.com/aierong/archive/2009/02/11/ItemRenderer.html
收藏与分享
收藏到QQ书签
添加到百度搜藏
添加到雅虎收藏

东莞.net俱乐部
欢迎您的加入
我的系列文章
A.
Sql Server2005 Transact-SQL 新兵器学习 B.
MCAD学习 C.
代码阅读总结 D.
ASP.NET状态管理 E.
DB(数据库) F.
WAP G.
WinForm
H.
Flex
我的好文推荐
FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统((Flex,Fms3联合开发))<视频聊天,会议开发实例8>
Sql Server2005 Transact-SQL 新兵器学习总结之-总结
MS SQL数据库备份和恢复存储过程(加强版本)
sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
ASP.NET2.0国际化/本地化应用程序的实现总结(多语言,多文化页面的实现)
WAP开发资料站(最新更新)
自定义格式字符串随笔
(IFormattable,IFormatProvider,ICustomFormatter三接口的实现)
Mcad学习笔记之异步编程(AsyncCallback
委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结)
Mcad学习笔记之通过反射调用類的方法,屬性,字段,索引器(2種方法)
Mcad学习笔记之序列化(2进制和Soap序列
化)
Mcad学习笔记之委托再理解(delegate的构造器,BeginInvoke,EndInvoke,Invoke4个方法的探讨)
ASP.NET状态管理之一(概括篇)
Flex,Fms学习笔记
posted @ 2008-12-30 20:07
aierong 阅读(12646)
评论(53) 编辑 收藏 所属分类:
Flex
发表评论
aierong老师,源码收到,学习ing.谢谢!请教zlchat.com上的技术你会吗?
#4楼[
楼主]2009-03-22 13:13 |
--引用--------------------------------------------------
媒媒: aierong老师,源码收到,学习ing.谢谢!请教zlchat.com上的技术你会吗?
--------------------------------------------------------
我也是初学者,别称呼老师!谢谢你得支持
zlchat.com我刚去看了,他们服务器端是用什么没看出来,客呼端应该是flex开发得
LZ,最近在研究软视频会议,一起交流,请发一份源码给我,
谢谢
haozgharris@163.com
#8楼[
楼主]2009-04-20 08:01 |
--引用--------------------------------------------------
支持开源: LZ,最近在研究软视频会议,一起交流,请发一份源码给我,
谢谢
haozgharris@163.com
--------------------------------------------------------
视频会议我有多个版本
您要哪个版本请在相关文章下面留言给我呀
yxtbdu已转发
谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,
#12楼[
楼主]2009-04-21 17:01 |
--引用--------------------------------------------------
hi.baidu.com/yxtbdu: 你应该出书,我买那,我买那
--------------------------------------------------------
呵呵,我也是初学者
十分感谢楼主,邮箱已经收到你发来的信息!
祝楼主天天开心,万事顺利!
#14楼[
楼主]2009-05-04 08:28 |
--引用--------------------------------------------------
康明亮: 十分感谢楼主,邮箱已经收到你发来的信息!
祝楼主天天开心,万事顺利!
--------------------------------------------------------
多交流
楼主经常到这里来吗
我也要份源码 客户端与服务端的
luceo@126.com
谢谢!
#16楼[
楼主]2009-05-08 08:10 |
--引用--------------------------------------------------
suohun: 楼主经常到这里来吗
我也要份源码 客户端与服务端的
luceo@126.com
谢谢!
--------------------------------------------------------
您要哪篇文章代码,请到相应文章下留言
大哥程序需要哪里设置吗?没有验证用户名密码程序啊,随便输入用户名密码,输入服务器rtmp://localhost/meet meet是applications里的文件夹,提示连接失败,怎么搞的呢?
#18楼[
楼主]2009-05-19 08:15 |
--引用--------------------------------------------------
郭天成: 大哥程序需要哪里设置吗?没有验证用户名密码程序啊,随便输入用户名密码,输入服务器rtmp://localhost/meet meet是applications里的文件夹,提示连接失败,怎么搞的呢?
--------------------------------------------------------
登录没有验证用户名和密码,随便输入
#20楼[
楼主]2009-06-02 22:06 |
--引用--------------------------------------------------
道尔: 麻烦发份源码给我呗,vbox 的搞不懂!
--------------------------------------------------------
我晕倒,你要哪篇文章代码?
最近我们系让我组织一个项目组开发在线视音频诊断系统,看了您的这些技术文章,真是让我深受启发,同时也体会到了Flex的强大魅力和发展潜力。我决定我们开发的系统也采用Flex+fms了。所以也请发我一份源码!
hvayu@qq.com
谢谢!
学习Flex+fms 中麻烦楼主发送一份代码,谢谢
315492193@qq.com
楼主拜读你文章常来这里
要份Flex+fms 源码 客户端与服务端的
jackmes@qq.com
#26楼[
楼主]2009-07-10 08:17 |
每篇文章中都提供了代码下载呀!
#27楼[
楼主]2009-07-10 08:17 |
每篇文章中都提供了代码下载呀!
楼主跟着练习了你的文章,语音的时候声音质量很差,有沙沙的杂音,是什么问啊?只有两个人聊的时候都是这样的.还有一个问题是如果我只想语音,不看到视频要怎么设?
microphone=Microphone.getMicrophone();
microphone.gain=85;
microphone.rate=10;
//microphone.setSilenceLevel(15, 2000);
microphone.setUseEchoSuppression(true);
microphone.setLoopBack(false);
楼主好像很久没上线了?
请问可否让popUp在窗体出来时,同时又可以在Application中
做其它操作,如聊天?
不知道楼主是否遇到这样的问题。。
指定了最大的客户端连接数量之后,在超出的那台客户端虽然连接不进去,单是只要有过这样的操作,然后在去退出其他客户端的时候,会导致所有的客户端连接都关闭,这该怎么解决呢?
#32楼[
楼主]2009-11-10 13:54 |
欢迎
#33楼[
楼主]2009-11-10 13:54 |
把视频流屏蔽了
#34楼[
楼主]2009-11-10 13:55 |
改一下显示方式
#35楼[
楼主]2009-11-10 13:55 |
我没有这样情况
我当时用的是fms3,开发学习版,官方站免费下载
学习Flex+fms 中麻烦楼主发送一份代码,谢谢
xiaoxiangfeizi520@163.com
#37楼[
楼主]2009-12-10 18:59 |
呵呵,博文中已经给出了代码下载URL
您好 ,我是FLEX的初学者, 我想问下着有关FLEX下的关于共享桌面的问题,就是在生成好的flex_bin文件夹下,用到addinForScreenShare的插件来控制共享桌面,怎么会不好用,请老师指导下,我的Q是63943086,谢谢老师您了!
您好 ,我是FLEX的初学者, 我想问下着有关FLEX下的关于共享桌面的问题,就是在生成好的flex_bin文件夹下,用到addinForScreenShare的插件来控制共享桌面,怎么会不好用,请老师指导下,我的Q是344461983,谢谢老师您了!
#40楼[
楼主]2009-12-19 08:48 |
addinForScreenShare这个东西 没有用过
是干什么的?
#41楼[
楼主]2009-12-19 08:49 |
addinForScreenShare这个东西 没有用过
是干什么的?
@aierong
一款实现共享桌面的插件,现在我的视频会议系统的问题就是当共享桌面的发布端和fms服务器连接正常时候,接收端没有显示,但在fms服务器上还显示 接收端和服务器正常连接,就是显示不出来共享桌面
接收端代码是这样的 您看下有什么问题:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" doubleClickEnabled="true" width="400" height="300" creationComplete="this.recive();" doubleClick="this.biggestWD()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import com.MyNetCon;
public function recive():void
{
var myNS:NetStream= new NetStream(MyNetCon.nc);
myNS.play(MyNetCon.roomID.toString()+"screenShare", "live");
//myNS.play(MyNetCon.roomID.toString()+"screenShare", "live");
var video:Video=new Video();
video.height=this.liveVideo.height;
video.width=this.liveVideo.width;
video.attachNetStream(myNS);
this.liveVideo.addChild(video);
}
//视频窗口最大化
private function biggestWD():void
{
for(var i:int=0;i<this.parentApplication.numChildren;i++)
{
var oneClient:OneBiggestVid=this.parentApplication.getChildAt(i)as OneBiggestVid;
if(oneClient==null)
{
oneClient=new OneBiggestVid();
oneClient.videoname=MyNetCon.roomID.toString()+"screenShare";
this.parentApplication.addChild(oneClient);
}
else
{
this.parentApplication.removeChild(oneClient);
}
}
}
]]>
</mx:Script>
<mx:VideoDisplay x="0" y="0" width="100%" height="100%" id="liveVideo"/>
</mx:Canvas>
帮我看看有什么问题 老师~ 很急
谢谢了~方便的话 加qq讨论一下 344461983
MyNetCon.as的设置是这样的
package com
{
import com.renaun.samples.net.FMSConnection;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.net.NetConnection;
import flash.net.SharedObject;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class MyNetCon extends EventDispatcher
{
[Bindable]private var extenalXML:XML;
public function MyNetCon()
{
var loader:URLLoader=new URLLoader();
var request:URLRequest=new URLRequest("Business/IP.xml");
loader.load(request);
loader.addEventListener(Event.COMPLETE,onComplete);
}
//获取XML数据
private function onComplete(event:Event):void
{
var loader:URLLoader=event.target as URLLoader;
if(loader!=null)
{
this.extenalXML=new XML(loader.data);
SharedObject.defaultObjectEncoding = flash.net.ObjectEncoding.AMF3;
MyNetCon.ScreenShare=this.extenalXML.screenshare.toString();
MyNetCon.CanSpeak=Boolean(this.extenalXML.CanSpeak.toString());
//MyNetCon.nc = new FMSConnection();
//MyNetCon.nc.addEventListener("success", connectionSuccessHandler );
fms=this.extenalXML.red5server.toString();
//MyNetCon.nc.connect( this.extenalXML.red5server.toString());//连接Red5服务器
MyNetCon.AddInUrl=this.extenalXML.AddInUrl.toString();
MyNetCon.ScreenShare=this.extenalXML.screenshare.toString();
this.dispatchEvent(new Event("connectSuccess"));
//MyNetCon.nc.client=this;
}
}
private function connectionSuccessHandler(event:Event):void
{
this.dispatchEvent(new Event("connectSuccess"));
}
//视频地址
public static var fms:String;
//服务器端的链接
public static var nc:FMSConnection;
//共享桌面地址
public static var ScreenShare:String;
}
}
老师在问下,这个地方也有问题,我的橡皮擦擦不掉,直线,矩形,圆,不知道那个地方有问题,请老师帮助我看看,这个地方很着急,也希望老师能加qq联系讨论下,63943086,谢谢老师您了!这是第一部分!
<mx:Script>
<![CDATA[
import com.MyNetCon;
import mx.controls.Image;
import mx.controls.Label;
import mx.rpc.events.ResultEvent;
import Business.*;
import com.renaun.samples.net.FMSConnection;
import com.renaun.samples.net.User;
import com.renaun.samples.net.Map;
import flash.net.SharedObject;
import flash.display.*;
import mx.core.UIComponent;
[Bindable]private var nc:FMSConnection;
private var soChat:SharedObject;
private var oX:Number;
private var oY:Number;
private var nX:Number;
private var nY:Number;
private var lineThick:Number=2;
private var lineColor:uint=0x000000;
private var Flag:String;
private var sprite:Sprite;
private var shape:Shape;
private var component:UIComponent;
private var wsuser:WSUser=new WSUser();
[Bindable]private var UID:String;
[Bindable]private var role:String;
[Bindable]private var roomID:String;
private var uinfor:SharedObject;
public function RequestSessionUID():void
{
uinfor=SharedObject.getLocal("UserInfor","/");
this.role=uinfor.data.obj.role.toString();
this.UID=uinfor.data.obj.userID.toString();
this.roomID=uinfor.data.obj.roomID.toString();
soChat = SharedObject.getRemote (this.roomID+"Space", MyNetCon.nc.uri, true );
soChat.client = this;
soChat.connect(MyNetCon.nc);
this.InitCanver();
}
private function InitCanver():void
{
component=new UIComponent();
sprite=new Sprite();
this.component.addChild(sprite);
this.addChild(component);
this.sprite.graphics.beginFill(0xffffff);
this.sprite.graphics.drawRect(0,0,this.width-100,this.height);
this.sprite.graphics.endFill();
老师在问下,这个地方也有问题,我的橡皮擦擦不掉,直线,矩形,圆,不知道那个地方有问题,请老师帮助我看看,这个地方很着急,也希望老师能加qq联系讨论下,63943086,谢谢老师您了!这是第二部分!
if(this.role=="主持人")
{
this.TWin.enabled=true;
this.sprite.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
this.sprite.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
}
private function onMouseDown(event:MouseEvent):void
{
this.oX=this.mouseX;
this.oY=this.mouseY;soChat.send("onDown",oX,oY,this.lineThick,this.lineColor);
}
private function onMouseUp(event:MouseEvent):void
{
soChat.send("onUp");
}
private function onMouseMove(event:MouseEvent):void
{
if(this.role=="主持人")
{
this.nX=this.mouseX;
this.nY=this.mouseY;
soChat.send("onDraw",nX,nY,oX,oY,this.lineThick,this.lineColor,this.Flag);
}
}
public function onDown(oX:Number,oY:Number,lThick:Number,lColor:uint):void
{
shape=new Shape();
shape.graphics.lineStyle(lThick,lColor, 1);
this.sprite.addChild(shape);
this.sprite.graphics.lineStyle(lThick,lColor, 1);
this.sprite.graphics.moveTo(oX, oY);
this.sprite.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
}
老师在问下,这个地方也有问题,我的橡皮擦擦不掉,直线,矩形,圆,不知道那个地方有问题,请老师帮助我看看,这个地方很着急,也希望老师能加qq联系讨论下,63943086,谢谢老师您了!这是第三部分!
public function onDraw(mX:Number,mY:Number,oX:Number,oY:Number,lThick:Number,lColor:uint,flag:String):void
{
shape.graphics.clear();
shape.graphics.lineStyle(lThick,lColor, 1);
if(flag=="hbi")//画笔
{
this.sprite.graphics.lineTo(mX, mY);
}
if(flag=="L")//画直线
{
shape.graphics.moveTo(oX,oY);
shape.graphics.lineTo(mX,mY);
}
if(flag=="R")//画矩形
{
shape.graphics.drawRect(oX,oY,mX-oX,mY-oY);
}
if(flag=="C")//画圆
{
var preX:Number = Math.min(oX, mX);
var preY:Number = Math.min(oY,mY);
var cWidth:Number = Math.abs(oX - mX);
var cHeight:Number = Math.abs(oY- mY);
this.shape.graphics.drawEllipse(preX,preY,cWidth,cHeight);
}
if(flag=="X")//橡皮檫
{
this.sprite.graphics.lineStyle(30,0xffffff,1);
this.sprite.graphics.lineTo(mX,mY);
}
}
public function onUp():void
{
this.sprite.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
}
#47楼[
楼主]2009-12-26 08:08 |
一款实现共享桌面的插件?叫什么名字?
#48楼[
楼主]2009-12-26 08:09 |
代码好长,能否全部贴出来
#49楼[
楼主]2009-12-26 08:10 |
你代码 是否完整贴出?
#50楼[
楼主]2009-12-26 08:11 |
晕倒 这样怎么看
老师的我那个代码在46,47,48楼都已经全部贴上来了,希望老师能帮我看下那个地方怎么编写,辛苦老师您了!
#52楼[
楼主]2010-01-20 14:45 |
晕倒 怎么看?