Flex3.0 Loader类的练习
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" click="loadpic()">
<mx:Script>
<![CDATA[
//导入需要的类包
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event; //声明Loader类 private var pictLdr:flash.display.Loader = new Loader(); //声明资源所在的位置,以字符串形势出现。
private var pictURL:String = "C:/Documents and Settings/Administrator/桌面/Flash/bernhardwolff.swf"; //声明URLRequest对象
private var pictURLReq:URLRequest = new URLRequest(pictURL); //声明Sprite实例为容器
private var container:Sprite = new Sprite(); //加载图片函数
private function loadpic():void
{
//通过Load加载图片
pictLdr.load(pictURLReq); //将容器添加在舞台上
this.stage.addChild(container); //添加监听事件,当加载内容结束后调用事件。
pictLdr.contentLoaderInfo.addEventListener(Event.COMPLETE,imgLoaded);
} //加载结束后调用的函数
private function imgLoaded(e:Event):void
{
//将图片添加到Sprite容器中
this.container.addChild(this.pictLdr.content);
}
]]>
</mx:Script>
</mx:Application>
知识备忘:
相关知识说明: Loader 类可用于加载 SWF 文件或图像(JPG、PNG 或 GIF)文件。 使用 load() 方法来启动加载。 被加载的显示对象将作为 Loader 对象的子级添加。 使用 URLLoader 类加载文本或二进制数据。 使用Load类时,我们还应该特别了解 Flash Player安全模型。
1、您可以加载来自任何可访问源的内容。
2、如果执行调用的 SWF 文件位于网络沙箱中并且要加载的文件是本地的,则不允许加载。
备注:什么是网络沙箱?
概述沙箱处理是一个通用安全性术语,它适用于所有降低某应用程序运行特权的环境。它对于从 Internet 下载的沙箱应用程序尤为重要,因为这些应用程序往往来源不明或不可信。
举例说明:见文章:http://cs1022.spaces.live.com/blog/cns!34345A50FF5F1AC1!192.entry
3、如果加载的内容为用 ActionScript 3.0 编写的 SWF 文件,那么除非可以通过调用加载的内容文件中的 System.allowDomain() 或 System.allowInsecureDomain() 方法来允许跨脚本排列,否则另一个安全沙箱中的 SWF 文件不能对它执行跨脚本操作。
4、如果被加载的内容为 AVM1 SWF 文件(用 ActionScript 1.0 或 2.0 编写),则 AVM2 SWF 文件(用 ActionScript 3.0 编写)不能对它执行跨脚本操作。 但是,可以通过使用 LocalConnection 类在两个 SWF 文件之间实现通信。
5、如果被加载的内容为图像,则除非该 SWF 文件的域包含在该图像原始域的跨域策略文件中,否则安全沙箱之外的 SWF 文件无法访问其数据。
6、在只能与本地文件系统的内容交互的沙箱中的影片剪辑不能对只能与远程内容交互的沙箱中的影片剪辑使用脚本,反之亦然。
解决的办法: 当从不受信任的源(如除 Loader 对象的根 SWF 文件以外的域)加载 SWF 文件时,您可能需要为 Loader 对象定义蒙版,以防止将加载的内容(Loader 对象的子级)绘画到该蒙版之外的舞台部分中。
如以下代码所示:
import flash.display.*;
import flash.net.URLRequest;
var rect:Shape = new Shape();
rect.graphics.beginFill(0xFFFFFF);
rect.graphics.drawRect(0, 0, 100, 100);
rect.graphics.endFill();
addChild(rect);
var ldr:Loader = new Loader();
ldr.mask = rect;
var url:String = "http://www.unknown.example.com/content.swf";
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq);
addChild(ldr);
练习过程中发现的问题说明:
在我做的过程中,发现BUG信息:
ArgumentError: Error #2025: 提供的 DisplayObject 必须是调用者的子级。
因为我是初学,所以,发现问题只能寻求BaiDu、Google的帮助,网上给的答案中我认为最靠谱的是:删除了不存在的对象,我觉得这个答案有点靠谱。但是,从帮助上看,我觉得应该是:Loader 类会覆盖其继承的以下方法,因为 Loader 对象只能有一个子显示对象 -- 其加载的显示对象。调用以下方法将引发异常:addChild()、addChildAt()、removeChild()、removeChildAt() 和 setChildIndex()。 要删除被加载的显示对象,必须从其父 DisplayObjectContainer 子级数组中删除 Loader 对象。
Flex3.0 Loader类的练习的更多相关文章
- EF 5.0 帮助类
EF 5.0 帮助类 加入命名空间: using System; using System.Data; using System.Data.Entity; using System.Data.Enti ...
- EF 5.0 帮助类 增删改查
原文地址:http://www.cnblogs.com/luomingui/p/3362813.html EF 5.0 帮助类 加入命名空间: using System; using System.D ...
- Aspose.Cells for .NET 8.5.0 工具类
基于 Aspose.Cells for .NET 8.5.0 工具类, Aspose.Cells for .NET 8.5.0 这个自己去CSDN下载里面有破解的,没有破解的导出excel的时候会(A ...
- Cocos2d-x 3.0标签类Label
Cocos2d-x 3.0后推出了新的标签类Label,这种标签通过使用FreeType[1]来使它在不同的平台上有相同的视觉效果.由于使用更快的缓存代理,它的渲染也将更加快速.Label提供了描边和 ...
- Swift4.0复习类
1.类的属性: 2.类的方法: 3.类作为引用类型: “Swift新增了一对操作符 === 与 !== 用于判定同一个类的两个对象引用是否指向同一对象实例.” 摘录来自: “大话Swift 4.0”. ...
- vc6.0打开类向导时报错-Parsing error: Expected ";".Input Line: "解决方法
--------------------------- Microsoft Visual C++ --------------------------- Parsing error: Expecte ...
- C++ //纯虚函数和抽象类 // 语法 virtual 返回值类型 函数名 (参数列表)=0 //当类中有了纯虚函数 这个类也称为抽象类
1 //纯虚函数和抽象类 2 // 语法 virtual 返回值类型 函数名 (参数列表)=0 3 //当类中有了纯虚函数 这个类也称为抽象类 4 5 6 #include <iostream& ...
- [ActionScript 3.0] AS3.0 Loader加载子swf时是否需要指定新的应用程序域ApplicationDomain
实际应用中, Loader加载子swf时是否需要指定新的应用程序域ApplicationDomain,需要择情况而定. 1.如果在本地将项目位置添加到flashplayer受信任位置(上一篇文章所述) ...
- CodeIgniter(CI 3.0)分页类实践记录
最近在学习B/S,选择了PHP CI框架作为切入点. 在尝试制作个人CMS的时候遇到了需要分页的情况,网上好像搜不到3.0版本以上的例子,下面附上本地实验的代码,供参考. 数据库情况如下: 首先看Co ...
随机推荐
- GraphicsMagick / ImageMagick缺少lib报错no decode delegate for this image format
下载相应的lib,编译安装就行了 cd ~ #下载包 wget http://www.imagemagick.org/download/delegates/zlib-1.2.7.tar.gz wget ...
- ubuntu samba服务器多用户配置【转】
转自:http://www.2cto.com/os/201204/127043.html ubuntu samba服务器多用户配置 在/home/下有多个用户目录A.B...,现通过samba共享 ...
- 很实用的js限制不让输入其他字符,只让输入数字和 js生成UUID
onkeyup="this.value=this.value.replace(/\D/g,'')" js生产UUID var createUUID = (function (uui ...
- Oracle —— 函数 length() 和 lengthb() 的区别
先看看几个例子: select length('Oracle') from dual 结果:6 select lengthb('Oracle') from dual 结果:6 select lengt ...
- html5 canvas移动设备渲染测试
最近项目闲着没什么事,又想起了canvas, 针对移动端设备默认浏览器,做了点渲染方面效率的测试,手头设备不多(有一些低端机型和pc chrome做对比),现将测试数据分享给大家吧,本想和css3 a ...
- hdu4760Good Firewall
4760 数组模拟就可以了 读的时候可以整数读入 #include <iostream> #include<cstdio> #include<cstring> #i ...
- 【Todo】深入理解Java虚拟机 读书笔记
有一个在线系列地址 <深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)> http://book.2cto.com/201306/25426.html 已经下载了这本书(60多M ...
- C实现类封装、继承、多态
1. 概述 C语言是一种面向过程的程序设计语言,而C++是在C语言基础上衍生来了的面向对象的语言,实际上,很多C++实现的底层是用C语言实现的,如在Visual C++中的Interface其实就是 ...
- Using unique option prefix myisam-recover instead of myisam-recover-option
[转载]关于mysql error.log报"Using unique option prefix myisam-recover instead of myisam-recover-opti ...
- 抛出自定义异常,spring AOP事务不回滚的解决方案
spring AOP 默认对RuntimeException()异常或是其子类进行事务回滚,也就是说 事务回滚:throw new RuntimeException("xxxxxxxxxxx ...