accordion组件效果

      我的日志 2008-5-27 16:6

V2组件里有一个accordion,里面点击后item滚动的效果我一直以为非常难实现,今天要自己实现非常在本子上画来画去,又是看V2组件的源代码,最后没搞明白。

最后我就直接上手编了,没想到极其的easy,看来有时候眼低手高也不太好。

效果:

import huawen.gs.TweenLite;
import flash.events.MouseEvent;
import flash.filters.BitmapFilter;
import flash.filters.BitmapFilterQuality;
import flash.filters.GlowFilter;

var arr:Array = new Array();
var flag:int;
arr.push(mc1);
arr.push(mc2);
arr.push(mc3);
arr.push(mc4);
for (var i:uint=0; i<arr.length; i++) {
 arr[i].addEventListener(MouseEvent.ROLL_OVER,handler);
 arr[i].addEventListener(MouseEvent.ROLL_OUT,handleOut);
}
panel.addEventListener(MouseEvent.ROLL_OVER,glow);

var filter:BitmapFilter = getBitmapFilter();
var myFilters:Array = new Array();
myFilters.push(filter);
function glow(e:Event):void {
 panel.filters=myFilters;

}

function handler(e:Event):void {

 for (var i:uint=0; i<arr.length; i++) {
  if (arr[i]==e.target) {
   flag=i;
   arr[i].filters=myFilters;
   break;
  }
 }
 for (i=0; i<arr.length; i++) {
  if (i<flag) {
   arr[i].filters=null;
   TweenLite.to(arr[i], .2, { y:28*i});
  } else if (i==flag) {
   TweenLite.to(arr[i], .2, { y:28*i});
  } else {
   arr[i].filters=null;
   TweenLite.to(arr[i], .2, { y:28*i+80});
  }
 }
 panel.y = flag*28+28;


}
function handleOut(e:Event):void {
 //e.target.filters=null;
}
function getBitmapFilter():BitmapFilter {
 var color:Number = 0x33CCFF;
 var alpha:Number = 0.8;
 var blurX:Number = 10;
 var blurY:Number = 10;
 var strength:Number = 2;
 var inner:Boolean = true;
 var knockout:Boolean = false;
 var quality:Number = BitmapFilterQuality.HIGH;

 return new GlowFilter(color,alpha,blurX,blurY,strength,quality,inner,knockout);
}

标签集:TAGS:accordion AS3 flash
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}