博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[ActionScript 3.0] 利用InteractivePNG.as类精确选择识别png图片有像素的区域
阅读量:5101 次
发布时间:2019-06-13

本文共 2801 字,大约阅读时间需要 9 分钟。

用法:如果是把png直接导入flash转换成影片剪辑,只需在影片剪辑属性中勾选为ActionScript导出(x),并把基类里的flash.display.MovieClip替换成InteractivePNG即可;如果是外部导入png,只需将存放png的类继承InteractivePNG即可;

1 package  2 { 3     import flash.display.Loader; 4     import flash.display.MovieClip; 5     import flash.display.Shape; 6     import flash.display.Sprite; 7     import flash.events.Event; 8     import flash.events.MouseEvent; 9     import flash.filters.DropShadowFilter;10     import flash.net.URLRequest;11 12     /**13       * ...14       * @author Frost.Yen15       */16     public class TestPNG extends Sprite17     {18         private var pngSp:PNGContainer;19         private var ldr:Loader = new Loader  ;20         private var lineSp:Sprite;21         private var frame:Shape = new Shape  ;22         public function TestPNG()23         {24 25             lineSp = new Sprite  ;26             pngSp = new PNGContainer  ;27             pngSp.x = pngSp.y = 200;28             this.addChild(lineSp);29             this.addChild(pngSp);30             pngSp.addEventListener(MouseEvent.MOUSE_OVER,onPNGOver);31             pngSp.addEventListener(MouseEvent.MOUSE_OUT,onPNGOut);32         }33 34         private function onPNGOver(e:MouseEvent):void35         {36             drawLine(pngSp);37         }38 39         private function onPNGOut(e:MouseEvent):void40         {41             this.removeChild(frame);42         }43 44         private function drawLine(_mc:MovieClip)45         {46             frame.graphics.clear();47             frame.graphics.moveTo(_mc.x,_mc.y);48             frame.graphics.lineStyle(1,0xff00ff);49             frame.graphics.lineTo(_mc.x + _mc.width,_mc.y);50             frame.graphics.moveTo(_mc.x + _mc.width,_mc.y);51             frame.graphics.lineTo(_mc.x + _mc.width,_mc.y + _mc.height);52             frame.graphics.moveTo(_mc.x + _mc.width,_mc.y + _mc.height);53             frame.graphics.lineTo(_mc.x,_mc.y + _mc.height);54             frame.graphics.moveTo(_mc.x,_mc.y + _mc.height);55             frame.graphics.lineTo(_mc.x,_mc.y);56             addChild(frame);57         }58     }59 }
1 package  2 { 3     import flash.display.Loader; 4     import flash.events.Event; 5     import flash.net.URLRequest; 6  7     /** 8       * ... 9       * @author Frost.Yen10       */11     public class PNGContainer extends InteractivePNG12     {13         private var ldr:Loader = new Loader  ;14         public function PNGContainer()15         {16             ldr.load(new URLRequest("128.png"));17             ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,onPNGLoaded);18         }19 20         private function onPNGLoaded(e:Event):void21         {22             this.addChild(e.target.content);23         }24     }25 26 }

InteractivePNG.as类可以到下载

转载于:https://www.cnblogs.com/frost-yen/p/4544176.html

你可能感兴趣的文章
VS 文件编码
查看>>
highcharts
查看>>
畅通工程再续
查看>>
物联网技术在工业领域的主要应用
查看>>
脚本故事 - 2003年11月
查看>>
C#中out和ref之间的区别
查看>>
js获取html5 audio 音频时长方法
查看>>
C语言 · 判断回文
查看>>
分享一款在线less转css的神器
查看>>
pandas把'<m8[ns]'类型转换为int类型进行运算
查看>>
判断一个字符串(str)是否以指定的字符串(target)结尾。 如果是,返回true;如果不是,返回false。...
查看>>
控制台编程基础总结
查看>>
Guava CaseFormat
查看>>
第一个C#程序
查看>>
第六次作业-----抽奖系统
查看>>
Message讲解
查看>>
Python3 OOP(一) 类和实例
查看>>
MySQLdb 1031 Error
查看>>
部门开始做技术talk
查看>>
英语-180709
查看>>