热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->flash 
站内搜索:
平滑Image
作者:auzn 来源:blog 整理日期:2007-11-15

客户要求在Flash里加入扫光、海浪、破碎等效果,以前只是听说AE能做,便恶补了AE才做出来。结论:这年头什么都要会些 -_-!
睡前写个小东东:

在使用Image组件时发现没有平滑效果的设置和方法(有可能是自己太笨,找不到),就自己写了个简单的,对于普通的小应用应该够用了。
效果:
SmoothImage.swf
加载用的图片:
Apple_04.png

新建文件:SmoothImageTest.mxml

 程序代码

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    xmlns:local="*"
    height="128"
    width="256">

    <mx:Image
        source="Apple_04.png"
        width="128" height="128" x="0" y="0"
        verticalAlign="middle" horizontalAlign="center" />
    <local:SmoothImage
        ImgURL="Apple_04.png"
        width="128" height="128" x="128" y="0"
        verticalAlign="middle" horizontalAlign="center"/>
   
</mx:Application>

 


其中的SmoothImage就是下面要新建的类文件:
SmoothImage.as


 程序代码

package {
   
    import mx.controls.Image;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Loader;
    import flash.events.Event;
    import flash.net.URLRequest;
   
    public class SmoothImage extends Image {
       
        private var sourceURL:String;
        private var pictLdr:Loader;
       
        public function SmoothImage():void{
            super();
            pictLdr = new Loader();
            pictLdr.contentLoaderInfo.addEventListener(Event.INIT, loaderInit);
        }
       
        private function startLoadImg():void{
            pictLdr.load(new URLRequest(sourceURL));
        }
       
        private function loaderInit(event:Event):void{
            var myDataBitmap:BitmapData = new BitmapData(pictLdr.width,pictLdr.height,true, 0x00ffffff);
            myDataBitmap.draw(pictLdr);
            var myBitmap:Bitmap = new Bitmap(myDataBitmap,"auto",true);
            source = myBitmap;
        }
       
        public function set ImgURL(_url:String):void{
            sourceURL = _url;
            startLoadImg();
        }
       
        public function get ImgURL():String{
            return sourceURL;
        }
    }

}

原理非常简单,就是用Loader加载图片,然后绘制出一个Bitmap来做为Image组件的source.
Bitmap使用平滑打开,OK了
如有达人知道更好的方法,一定要告诉,先谢谢啦

PS. 这几天的大事很多哈。
FLEX3 BETA1出世,FLASH PLAYER 升级,AIR(原APOLLO)BETA现身。

 

相关文章