Flex中如何通过BitmapData类的compare()函数对嵌入的两个bitmap进行比较的例子

By Minidxer | October 5, 2008

接下来的例子演示了Flex中如何通过BitmapData类的compare()函数,对嵌入的两个bitmap进行比较。

让我们先来看一下Demo可以右键View Source或点击这里察看源代码):


下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="middle"
  5.         backgroundColor="white"
  6.         creationComplete="init();">
  7.  
  8.     <mx:Script>
  9.         <![CDATA[
  10.             import flash.display.BitmapData;
  11.  
  12.             [Bindable]
  13.             [Embed(source="assets/bug.png")]
  14.             private var BugIcon:Class;
  15.  
  16.             [Bindable]
  17.             [Embed(source="assets/bug_add.png")]
  18.             private var BugAddIcon:Class;
  19.  
  20.             private var diff:BitmapData;
  21.  
  22.             private function init():void {
  23.                 var bmd1:BitmapData = new BugIcon().bitmapData;
  24.                 var bmd2:BitmapData = new BugAddIcon().bitmapData;
  25.                 diff = BitmapData(bmd1.compare(bmd2));
  26.                 img3.source = new Bitmap(diff);
  27.             }
  28.         ]]>
  29.     </mx:Script>
  30.  
  31.     <mx:ApplicationControlBar dock="true">
  32.         <mx:Form>
  33.             <mx:FormItem label="image 1 alpha:"
  34.                     direction="horizontal">
  35.                 <mx:HSlider id="img1_alpha"
  36.                         minimum="0"
  37.                         maximum="1"
  38.                         value="1.0"
  39.                         snapInterval="0.1"
  40.                         tickInterval="0.1"
  41.                         liveDragging="true"
  42.                         change="img1.alpha = img1_alpha.value;" />
  43.                 <mx:Image source="{BugIcon}" />
  44.             </mx:FormItem>
  45.             <mx:FormItem label="image 2 alpha:"
  46.                     direction="horizontal">
  47.                 <mx:HSlider id="img2_alpha"
  48.                         minimum="0"
  49.                         maximum="1"
  50.                         value="1.0"
  51.                         snapInterval="0.1"
  52.                         tickInterval="0.1"
  53.                         liveDragging="true"
  54.                         change="img2.alpha = img2_alpha.value;" />
  55.                 <mx:Image source="{BugAddIcon}" />
  56.             </mx:FormItem>
  57.             <mx:FormItem label="diff image alpha:">
  58.                 <mx:HSlider id="img3_alpha"
  59.                         minimum="0"
  60.                         maximum="1"
  61.                         value="1.0"
  62.                         snapInterval="0.1"
  63.                         tickInterval="0.1"
  64.                         liveDragging="true"
  65.                         change="img3.alpha = img3_alpha.value;" />
  66.             </mx:FormItem>
  67.             <mx:FormItem label="scale:">
  68.                 <mx:HSlider id="scale"
  69.                         minimum="1"
  70.                         maximum="4"
  71.                         value="1"
  72.                         liveDragging="true"
  73.                         tickInterval="1"
  74.                         showTrackHighlight="true" />
  75.             </mx:FormItem>
  76.         </mx:Form>
  77.     </mx:ApplicationControlBar>   
  78.  
  79.     <mx:Canvas>
  80.         <mx:Image id="img1"
  81.                 source="{BugIcon}"
  82.                 scaleX="{scale.value}"
  83.                 scaleY="{scale.value}" />
  84.         <mx:Image id="img2"
  85.                 source="{BugAddIcon}"
  86.                 scaleX="{scale.value}"
  87.                 scaleY="{scale.value}" />
  88.         <mx:Image id="img3"
  89.                 scaleX="{scale.value}"
  90.                 scaleY="{scale.value}" />
  91.     </mx:Canvas>
  92.  
  93. </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子

Topics: Other | 1 Comment » | 544 views Tags: , ,

Search Posts