图片加载和发光滤镜

 
<script type="text/javascript"> </script>

在flash8 帮助文件中有这样一段示例:

import flash.filters.GlowFilter;
var mclListener:Object = new Object();

mclListener.onLoadInit = function(target_mc:MovieClip) {
   trace(target_mc._width);
   target_mc._x = (Stage.width - target_mc._width) / 2;
   target_mc._y = (Stage.height - target_mc._height) / 2;
   var glow:GlowFilter = new GlowFilter();
   target_mc.filters = [glow];
};
this.createEmptyMovieClip("img_mc",10);
var img_mcl:MovieClipLoader = new MovieClipLoader();
img_mcl.addListener(mclListener);
img_mcl.loadClip("myPIC.png",img_mc);  //myPIC.png 是和fla 文件同一目录中的图片

以前一直有这样一个问题很困扰我:就是用MC的loadMovie加载进来的图片没办法知道真实的尺寸。比如用下面的代码加载图片,输出的结果始终是0。

_root.createEmptyMovieClip("img_mc",0);
img_mc.loadMovie("myPIC.png");
trace( img_mc._width );

MovieClipLoader 似乎智能了很多,利用它的onLoadInit  事件参数,就可以获取图片的尺寸了,而且是得来全不费功夫,难怪网上这个问题没人提,也没人说,但困扰了我确实很久,所以在这里记下来。

发光滤镜的使用是比较简单的,不使用任何参数的情况下,它会给图片周围加上一圈红色光晕。应用滤镜时,滤镜对象要写在数组中,形式如 [glow],想必这是为了方便应用多个滤镜所设计的。

 var glow:GlowFilter = new GlowFilter();
 target_mc.filters = [glow];

png 格式的图片在应用发光滤镜时,系统会自动忽略掉透明的部分,但是其它的如bmp、jpg 格式的图片就没这么好的待遇,所以如果是追求效果,把图片先转换一下,处理好边缘的空白,再来用滤镜,效果会比较好。

AS3 中 MovieClipLoader 和 LoadVars 类已经被 Loader 和 URLLoader 类取代。

加载图片,并加上滤镜效果,代码如下:

import flash.filters.GlowFilter;

var ldr:Loader = new Loader();
var url:String = "19.png";
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq);
addChild(ldr);

var glow:GlowFilter = new GlowFilter();
ldr.filters = [glow];

AS3 中的加载要求的比较细了,就好比以前是直接到厨房里去拿吃的,现在必须先填单子,写下菜名(url:String) ,定义好你的吃法(urlReq:URLRequest ),然后让服务员给你传菜(ldr.load(urlReq); ),之后,要想看清楚你点的东西,你得把它放到桌子上去(addChild(ldr); )。操作环节分得细了,不论哪个环节出问题都可以很快的被发现,这就是规范化带来的好处。

Loader 类的继承关系这样的:

Loader Inheritance DisplayObjectContainer Inheritance InteractiveObject Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object

所以它是和MC一样具有可视的属性,就当它是个MC直接应用滤镜即可,当然,也得像MC一样通过 addChild 添加到场景中。

如果想知道图片的尺寸,用借用contentLoaderInfo 类的力量,在加载之前加上这些代码:

function initHandler(event:Event):void {
 var loader:Loader = Loader(event.target.loader);
 var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo);
 trace("initHandler: loaderURL=" + info.loaderURL + " url=" + info.url);
 trace( info.width,info.height);
}
function ioErrorHandler(event:IOErrorEvent):void {
 trace("ioErrorHandler: " + event);
}

ldr.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

终于知道图片的大小了,还有其它的信息。 

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值