`
china34420
  • 浏览: 136370 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Error #2044: 未处理的 StatusEvent:。 level=error, code=

阅读更多
在使用LocalConnection的时候,出现Error #2044: 未处理的 StatusEvent:。 level=error, code=这样的报错
以前是直接写在时间轴里的,没有报错。
这次是写在文档类。可是怎么搞都报错

例如.test1.swf加载了test2.swf,需要将test1的参数传到test2
1.加载test2.swf,然后在test2.swf建立一个连接,通知test1.swf已经建立完成(回调test1的t1Function()函数)
2.test1.swf收到test2.swf的回调之后也建立一个连接,并把参数发给test2.swf(回调test2r的t2Function(obj:Object)函数)

为了不重复写两次连接,所以写在一个as文件里
ConnectionObject.as
package com.zkl.net
{
	import flash.events.StatusEvent;
	import flash.net.LocalConnection;
	
	/**
	 * 建立一个连接名,然后发送一个连接信息
	 * @author zkl
	 * 2010-8-3 10:57
	 */
	public class ConnectionObject
	{
		//回调对像
		private var _client:Object; 
		//实例化连接
		private var _conn:LocalConnection;
		//准备一个 LocalConnection 对象,以接收来自 send() 命令(称为发送方 LocalConnection 对象)的命令。
		private var _connName:String;
		//接收的对像
		private var _connObj:String;
		//接收的句柄
		private var _connHandler:String;
		//接收的参数
		private var _connVar:Object;
		
		/**
		 * 使用当前的连接对像,建立一个连接名,然后发送一个连接信息
		 * @param	_client:当前服务对像
		 * @param	_connName:连接名
		 * @param	_connObj:要连接的对像
		 * @param	_connHandler:连接的句柄
		 * @param	_connVar:附带的参数
		 */
		public function ConnectionObject(_client:Object, _connName:String, _connObj:String, _connHandler:String, _connVar:Object = null):void
		{
			this._client = _client;
			
			this._connName = _connName;
			
			this._connObj = _connObj;
			
			this._connHandler = _connHandler;
			
			this._connVar = _connVar;
			
			init();
		}
		
		/**
		 * 建立连接
		 */
		private function init():void
		{
		    _conn = new LocalConnection;
			_conn.client = _client;
			_conn.allowDomain("*");
			try {
				_conn.connect(_connName);
			}catch (err:ArgumentError) {
				trace(err);
			}
		}
		
		/**
		 * 开始连接
		 */
		public function isConnection():void
		{
		    if (_connVar == null) {
				_conn.send(_connObj, _connHandler);
			}else {
				_conn.send(_connObj, _connHandler, _connVar);
				
			}	
			_conn.addEventListener(StatusEvent.STATUS, onStatus);
		}
		
		/**
		 * 关闭连接
		 */
		public function connClose():void
		{
		    _conn.close();
			_conn = null;
		}
		
		/**
		 * 连接状态
		 * @param	e
		 */
		public function onStatus(e:StatusEvent):void {
			//_conn.removeEventListener(StatusEvent.STATUS, onStatus);
			switch(e.level) {
				case "status":
					trace(_client + "发送成功.");
					break;
				case "error":
					trace(_client + "发送失败!");
					break;
			}
		}
	}
}


这是test1.swf的文档类
package 
{
	import com.zkl.net.ConnectionObject;
	import flash.display.MovieClip;
	import flash.display.Loader;
	import flash.net.URLRequest;
	import flash.events.Event;
	/**
	 * ...
	 * @author zkl
	 */
	public class Test1 extends MovieClip 
	{
		private var co:ConnectionObject;
		public function Test1() {
			var loader:Loader = new Loader();
			var movieUrl:URLRequest = new URLRequest("test2.swf");
			loader.load(movieUrl);
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);

connObject();//------------------------------1
		}
		public function loadComplete(e:Event):void {
			addChild(e.target.content);
			//connObject();//-----------------------2
		}
		public function connObject():void {
			co = new ConnectionObject(this, "t2", "t1", "t2Function", { totalUnit:10 } );
		}
		public function t1Function():void {
			co.isConnection();
			co.connClose();
		}
		
	}
	
}


//注意1和2不能调换,如果调换了就会出现前面那的错,主要是因为test2.swf还没加载完成之前,test1.swf要先做连接准备,不然test2.swf就会回调不到test1.swf的函数

这是test2.swf的文档类
package 
{
	import com.zkl.net.ConnectionObject;
	import flash.display.Loader;
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.net.URLRequest;
	
	/**
	 * ...
	 * @author zkl
	 */
	public class Test2 extends MovieClip 
	{
		private var co:ConnectionObject;
		public function Test2() {
			co = new ConnectionObject(this, "t1", "t2", "t1Function");
			co.isConnection();
		}
		public function t2Function(obj:Object):void {
			co.connClose();
			trace(obj.totalUnit);
		}
		
	}
	
}


请注意上红色的那段
分享到:
评论

相关推荐

    AS3本地录音及回放保存

    AS3是Adobe Flash Professional和Flex Builder等开发工具中广泛使用的编程语言,它允许我们创建丰富的交互式内容,包括音频处理。 ### AS3录音功能 在AS3中,我们可以使用`Microphone`类来访问用户的麦克风设备,...

    利用Flex技术实现消息通讯、账号重复登录、一台电脑只允许一个账号登录等问题

    } catch (error:ArgumentError) { ExternalInterface.call("sendToJavaScriptXiaXian_out"); } } ``` 通过以上步骤,我们不仅可以实现消息通讯的功能,还可以有效地管理账号的登录状态,确保了系统的安全性和...

    AS3 录音保存为文件

    6. **错误处理**:在整个过程中,别忘了添加适当的错误处理机制,例如监听`ErrorEvent`,以便在出现问题时给出反馈。 ```as3 fileRef.addEventListener(Event.CANCEL, onCancel); fileRef.addEventListener...

    Flex声音录入 MicRecorder Microphone

    Flex声音录入技术主要涉及到Flash平台中的MicRecorder和Microphone组件,这两个组件是处理音频输入和输出的核心工具。在本文中,我们将深入探讨如何利用这些组件实现麦克风声音的录入、播放以及时间统计,并讨论如何...

    ActionScript 3.0本地通信.

    为了监控本地连接的状态,包括可能发生的异常和连接状态变化,应为LocalConnection对象添加相应的事件侦听器,如`StatusEvent.STATUS`和`AsyncErrorEvent.ASYNC_ERROR`,并在这些事件发生时执行相应的处理逻辑。...

    flex4 摄像头调用实例

    trace("Camera status: " + event.code); } ``` 七、安全性与隐私 尊重用户的隐私权,当不再需要摄像头时,应释放资源并停止视频流: ```actionscript videoDisplay.attachCamera(null); camera = null; ``` 综...

    actionscript3.0在线录音

    在开始编写代码之前,我们需要了解ActionScript 3.0中的声音处理基础。AS3.0引入了Sound类和Microphone类,这两个类是实现录音功能的关键。Sound类用于播放和操作音频数据,而Microphone类则用于访问用户的麦克风...

    flash_摄像头高级篇

    if (event.code == "Camera.Unmuted") { trace("Camera is now active."); } } ``` 此外,Flash还支持对摄像头参数的调整,比如亮度、对比度、质量等,以满足不同场景的需求。例如,我们可以这样改变摄像头的...

    as3下的录音,播放并保存

    AS3是Adobe Flash Player和Adobe AIR应用程序的主要编程语言,它提供了丰富的功能来处理多媒体,包括声音处理。 首先,让我们了解AS3中的声音类。在AS3中,`Sound`和`Microphone`类是实现录音功能的关键。`...

    flash as3录音功能(不用借助fms)

    首先,AS3中的录音涉及到的声音处理主要是通过`Microphone`类来完成的。`Microphone`是Flash Player提供的一个内置类,用于获取用户的麦克风输入。以下是一些关键步骤: 1. **请求访问麦克风**:在使用`Microphone`...

    flash录音保存MP3文件

    if (event.code == "Microphone.Unmuted") { // 开始录音 } } ``` 3. **开始录音**:调用`start()`方法开始录音,用户同意权限后,麦克风数据会被捕获。 ```actionscript mic.setSilenceLevel(0, 1); mic.rate = ...

    flash闪光灯的资料!!!

    // 闪光灯不可用或未开启 } ``` 2. 接下来,可以设置闪光灯的状态: ```actionscript camera.setFlashMode(FlashMode.AUTO); // 自动模式 camera.setFlashMode(FlashMode.ON); // 开启闪光灯 camera.setFlashMode...

    用AS3调用摄像头

    在本文中,我们将深入探讨如何使用...总的来说,AS3提供了一套强大的工具来处理摄像头和视频流,使得开发者能够构建丰富的多媒体应用程序。理解并掌握这些概念和技术对于创建引人入胜的Web交互体验至关重要。

    SWF之间通信、Flex与SWF之间通信

    conn.addEventListener(StatusEvent.STATUS, onStatus); ``` - **处理接收到的消息**: 在接收端,定义处理程序函数来处理接收到的数据。 ```as function lcHandler(data:Object):void { trace("Received ...

    swf 本地通讯

    localConn.addEventListener(StatusEvent.STATUS, onStatusHandler); ``` 3. 建立连接:在接收方SWF中,使用相同的名字尝试连接到发送方。 ```actionscript localConn.connect("uniqueName"); ``` 4. 发送和接收...

    AS3.0在线拍照并保存图片

    如果找到摄像头,将其添加到`StatusEvent.STATUS`事件监听器中以加载相机设置。如果找不到摄像头,将打印一条错误消息。 2. **设置视频显示**: 创建一个`Video`对象,并根据摄像头的宽度和高度进行初始化。使用`...

    fl.zip_flex

    2. **fl.events**: 提供了各种事件类,如ProgressEvent、StatusEvent等,这些事件类用于处理程序运行时的交互和状态变化。 3. **fl.display**: 包含基本的显示对象,如Sprite、Shape、BitmapData等,它们是构建Flex ...

    flex 4 生命周期

    Flex 4的生命周期改进也体现在事件处理和元数据的使用上,例如` IOErrorEvent`和`StatusEvent`等事件,以及`[Bindable]`、`[SkinPart]`等元数据,这些都增强了组件与外部数据的交互和皮肤的自定义。 尽管Adobe提供...

Global site tag (gtag.js) - Google Analytics