Flex中利用drawRoundRect函数以及设置mask属性创建一个边角圆滑的Image控件的例子

By Minidxer | September 10, 2008

接下来的例子演示了Flex中如何利用drawRoundRect函数以及设置mask属性,创建一个边角圆滑的Image控件。这对于像册之类的应用来说相当有用。

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


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

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application name="Image_mask_test"
  3.         xmlns:mx="http://www.adobe.com/2006/mxml"
  4.         layout="vertical"
  5.         verticalAlign="middle"
  6.         backgroundColor="white"
  7.         initialize="init();">
  8.  
  9.     <mx:Script>
  10.         <![CDATA[
  11.             import mx.events.ResizeEvent;
  12.  
  13.             private var roundedMask:Sprite;
  14.  
  15.             private function init():void {
  16.                 roundedMask = new Sprite();
  17.                 canvas.rawChildren.addChild(roundedMask);
  18.             }
  19.  
  20.             private function image_resize(evt:ResizeEvent):void {
  21.                 var w:Number = evt.currentTarget.width;
  22.                 var h:Number = evt.currentTarget.height;
  23.                 var cornerRadius:uint = 60;
  24.                 roundedMask.graphics.clear();
  25.                 roundedMask.graphics.beginFill(0xFF0000);
  26.                 roundedMask.graphics.drawRoundRect(0, 0,
  27.                             w, h,
  28.                             cornerRadius, cornerRadius);
  29.                 roundedMask.graphics.endFill();
  30.                 image.mask = roundedMask;
  31.             }
  32.         ]]>
  33.     </mx:Script>
  34.  
  35.     <mx:Canvas id="canvas">
  36.         <mx:Image id="image"
  37.                 source="http://blog.minidx.com/ext/image1.jpg"
  38.                 resize="image_resize(event);">
  39.         </mx:Image>
  40.     </mx:Canvas>
  41.  
  42. </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子

Topics: Flex | No Comments » | 614 views Tags: , , ,

Search Posts