Iris动画效果的代码

Iris.as

 

package  mx.effects {
    
//导入Iris的实例类
    import mx.effects.effectClasses.IrisInstance;
    
//扩展MastEffect
    public class Iris extends MaskEffect{
        
//包含flex的版本说明文件
            include "../core/Version.as";
        
//构造函数
        public function Iris(target:Object = null){
            
//调用父类的构造函数
            super(target);
            
//指定实例类型
            instanceClass = IrisInstance;
        }

    }


}

IrisInstance.as

 

package  mx.effects.effectClasses {
    
import mx.controls.SWFLoader;
     
//扩展MastEffectInstance
    public class IrisInstance extends MaskEffectInstance{
        
//包含flex的版本说明文件          
        include "../../core/Version.as";
        
//构造函数
        public function IrisInstance(target:Object){    
            
super(target);
        }

        
//覆盖父类的方法
        override protected function initMaskEffect():void{
            
//调用父类的同名方法
            super.initMaskEffect();
            
//得到目标的实际尺寸,targetVisualBounds包含了目标可视区域的长和宽
            var targetWidth:Number = targetVisualBounds.width / Math.abs(target.scaleX);
            var targetHeight:Number 
= targetVisualBounds.height / Math.abs(target.scaleY);
            
//如果目标是SWFLoader对象,则计算加载内容的尺寸,而不是目标本身的尺寸
            if (target is SWFLoader){
                targetWidth 
= target.contentWidth;
                targetHeight 
= target.contentHeight;        
            }

            
//如果showTarget为true,表示显示目标对象
            if (showTarget){
                
//定义x,y方向的起始放缩值
                scaleXFrom = 0;
                scaleYFrom 
= 0;
                scaleXTo 
= 1;
                scaleYTo 
= 1;
                
//目标的起始位置
                xFrom = targetWidth / 2 + targetVisualBounds.x;
                yFrom 
= targetHeight / 2 + targetVisualBounds.y;
                
//确定最后的坐标
                xTo = targetVisualBounds.x;
                yTo 
= targetVisualBounds.y;
            }
else{
                
//如果是隐藏目标
                scaleXFrom = 1;
                scaleYFrom 
= 1;
                scaleXTo 
= 0;
                scaleYTo 
= 0;
                
//目标的起始位置
                xFrom = targetVisualBounds.x;
                yFrom 
= targetVisualBounds.y;
                
//确定最后的坐标
                xTo = targetWidth / 2 + targetVisualBounds.x;
                yTo 
= targetHeight / 2 + targetVisualBounds.y;
            }

    }

}


}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值