as3跟flex中图像加载问题 Error: addChild() is not available in this class. Instead, use addElement() or modi

在自学 as3殿堂之路中 在19.2 读取3中数据格式的例子中第三个是读取二进制格式的数据,比如加载图片或者是swf文件。然后我就敲了一下,在as3项目中实验成功。当我用flex项目中的时候出现了 Error: addChild() is not available in this class.  Instead, use addElement() or modify the skin, if you have one.的提示。

目 这时候需要创建UIComponent组件ui.    ui.addChild(content).  addElement(ui);

程序如下


<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
					   xmlns:s="library://ns.adobe.com/flex/spark" 
					   xmlns:mx="library://ns.adobe.com/flex/mx">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import flash.display.Loader;
			import flash.display.Sprite;
			import flash.events.Event;
			import flash.net.URLLoader;
			import flash.net.URLLoaderDataFormat;
			import flash.net.URLRequest;
			import flash.utils.ByteArray;
			
			import mx.core.UIComponent;
			private function init():void
			{
				ByteStorage();
			}
			
			
			
				private var loader:Loader;
				public function ByteStorage():void
				{
					var targetURL:String="fla/1.jpg";
					var request:URLRequest=new URLRequest(targetURL);
					
					var variables:URLLoader=new URLLoader();
					variables.dataFormat=URLLoaderDataFormat.BINARY;
					variables.addEventListener(Event.COMPLETE,completeHander);
					variables.load(request);
					
				}
				
				private function completeHander(event:Event):void
				{
					loader=new Loader();
					var content:ByteArray=event.target.data as ByteArray;
					loader.loadBytes(content);
					
					//addChild(loader);  // 运行错误,需要修改成下面的3句。
												//首先创建UIComponet对象ui ,把loader数据加
												//载到ui中。然后用addElement添加到主窗口中
					var ui:UIComponent=new UIComponent();
					ui.addChild(loader)
					canvas.addElement(ui);
				}
					
				
			
		]]>
	</fx:Script>
	<mx:Canvas id="canvas" x="12" y="22" width="255" height="207">
		
	</mx:Canvas>
	<s:Button x="60" y="266" label="按钮" click="init()"/>
</s:WindowedApplication>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值