[ActionScript 3.0] 幻灯片效果实例

package com.fylibs.components.effects
{
    import com.fylibs.utils.LoaderQueues;
    import com.tweener.transitions.Tweener;
    import com.views.LoadingView;

    import flash.display.Bitmap;
    import flash.display.Sprite;
    import flash.utils.clearTimeout;
    import flash.utils.setTimeout;

    /**
     * @author: Frost.Yen
     * @E-mail: [email protected]
     * @create: 2016-4-4 下午10:47:20
     * 幻灯片播放
     */
    public class SlideShow extends Sprite
    {
        private var _container:Sprite;
        private var _slideWidth:Number;
        private var _slideHeight:Number;
        private var _timeoutFade:uint;//控制切换图片的setTimeout
        private var _intervalFade:Number = 1000 * 5;//5s切换一次
        private var _duration:Number = 3;//切换过渡时长
        private var _dotBar:Sprite;
        private var _hasDot:Boolean;
        private var _page:int;
        private var _loadingView:LoadingView;
        public function SlideShow(w:Number,h:Number,hasDot:Boolean=false)
        {
            _slideWidth = w;
            _slideHeight = h;
            _hasDot = hasDot;
            initViews();
        }
        private function initViews():void
        {
            _dotBar = new Sprite();
            _container = new Sprite();
            _loadingView = new LoadingView();
            this.addChild(_container);
            this.addChild(_dotBar);

        }
        public function setSlide(url:Array):void
        {
            _page = url.length;
            _loadingView.addLoading(this,1920,770,0,74);
            for(var i:int=0;i<_page;i++){
                LoaderQueues.getInstance().addRes(url[i],onSlideLoaded);
            }
            if(_hasDot){
                initDot();
            }
        }

        private function onSlideLoaded(bmp:Bitmap):void
        {
            var sp:Sprite = new Sprite();
            bmp.width = _slideWidth;
            bmp.height = _slideHeight;
            sp.addChild(bmp);
            sp.name = "sp_"+_container.numChildren;
            _container.addChildAt(sp,0);
            if(_container.numChildren == _page){
                _loadingView.removeLoading();
                control(_container.numChildren - 1);
            }
        }
        /**
         * 控制播放内容的渐变轮换
         */
        private function fadeControl():void
        {
            if (_container.numChildren > 1) {
                setDotState(int(_container.getChildAt(_container.numChildren - 2).name.split("_")[1]));
                Tweener.addTween(_container.getChildAt(_container.numChildren - 1), { alpha:0, time:_duration} );
                Tweener.addTween(_container.getChildAt(_container.numChildren - 2), { alpha:1, time:_duration ,onComplete:fadeComplete} );
            }
        }
        /**
         * 播放内容轮换渐变结束,设置内容的层次
         */
        private function fadeComplete():void
        {
            control(_container.numChildren - 2);

            _container.setChildIndex(_container.getChildAt(_container.numChildren - 1), 0);

        }
        /**
         * 根据索引去处理图片轮换
         * @param    id
         */
        private function control(id:int):void
        {
            var obj:Sprite = _container.getChildAt(id) as Sprite;
            _timeoutFade = setTimeout(fadeControl, _intervalFade);
        }
        /**
         * 初始化表示页面的小圆点
         */
        private function initDot():void
        {
            disposeDot();
            for(var i:int=0;i<_page;i++){
                var dot:Sprite = createDot();
                dot.x = i*(dot.width+8);
                if(i==0){
                    dot.alpha = 1;
                }else{
                    dot.alpha = 0.5;
                }
                _dotBar.addChild(dot);
            }
            _dotBar.x = (_slideWidth-_dotBar.width)*0.5;
            _dotBar.y = _slideHeight - 20;
        }
        /**
         * 创建表示页面的小圆点
         */
        private function createDot():Sprite
        {
            var dot:Sprite = new Sprite();
            dot.graphics.beginFill(0xffffff,1);
            dot.graphics.drawCircle(0,0,5);
            dot.graphics.endFill();
            return dot;
        }
        /**
         * 移除表示页面的小圆点
         */
        private function disposeDot():void
        {
            while(_dotBar.numChildren){
                (_dotBar.getChildAt(0) as Sprite).graphics.clear();
                _dotBar.removeChildAt(0);
            }
        }
        /**
         * 设置表示页码的小圆点状态
         * @param      id 小圆点的id
         */
        private function setDotState(id:int):void
        {
            for(var i:int = 0;i<_dotBar.numChildren;i++){
                if(id == i){
                    _dotBar.getChildAt(i).alpha = 1;
                }else{
                    _dotBar.getChildAt(i).alpha = 0.5;
                }
            }
        }
        public function stop():void
        {
            clearTimeout(_timeoutFade);
        }
        public function play():void
        {
            _timeoutFade = setTimeout(fadeControl, _intervalFade);
        }
    }
}
时间: 2024-09-30 18:48:59

[ActionScript 3.0] 幻灯片效果实例的相关文章

[ActionScript 3.0] 翻牌效果,运用语法rotationY,PerspectiveProjection

1 package 2 { 3 import com.tweener.transitions.Tweener; 4 5 import flash.display.Bitmap; 6 import flash.display.BitmapData; 7 import flash.display.Sprite; 8 import flash.events.MouseEvent; 9 import flash.geom.PerspectiveProjection; 10 import flash.ge

[ActionScript 3.0] 正则表达式

正则表达式: 正则表达式最早是由数学家Stephen Kleene在对自然语言的递增研究成果的基础上,于1956提出来的.具有完整语法的正则表达式,主要使用在字符串的格式的匹配方面上,后来也逐渐应用到信息技术领域.不同的编程语言对于正则表达式有细微的不同,ActionScript 3.0是按照ECMAScript第3版语言规范(ECMA-262)中的定义实现正则表达式. 熟悉windows操作系统读者,应该知道windows中是怎样查找文件的.不错,使用通配符“*”用来匹配任意字符,“?”用来匹

图片的幻灯片效果

简单实现图片的幻灯片效果 设置-->"上一页"和"下一页"按钮 NSUInteger select; //创建图片视图控件 v1=[[UIImageView alloc] initWithFrame:CGRectMake(10, 30, 400, 400)]; select=0; v1.image=arr[select]; //添加到视图 [self.view addSubview:v1]; //按钮的响应方法 -(void)butaction:(UIButt

setTimeout应用 &amp;&amp; 自动播放——幻灯片效果&amp;&amp; 自动改变方向——幻灯片效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

在 Flash ActionScript 2.0 中调用 Javascript 方法

本篇文章由:http://xinpure.com/call-the-javascript-method-in-flash-actionscript-2-0/ 在 Flash ActionScript 2.0 中调用 Javascript 方法 最近在工作中,有个这样的需求: 要从 Flash ActionScript 2.0 中调用网页上的 Javascript 方法 这是一个关于 Flash 和 Javascript 交互的问题. 在 ActionScript 2.0 中调用外部 javasc

CSS3实现的圆形遮罩手机应用效果实例

<html> <head> <title>CSS3实现的圆形遮罩手机应用效果实例丨芯晴网页特效丨CsrCode.CN</title> <style> .trans { -webkit-transition: 0.3s ease; -moz-transition: 0.3s ease; -ms-transition: 0.3s ease; -o-transition: 0.3s ease; transition: 0.3s ease; } .tes

android4.0 USB Camera实例(四)CMOS

上一篇说了下usb camera uvc标准的 顺便把CMOS做到一起 操作上基本一至 上一篇HAL层里我已经提供了CMOS的相关接口 JNIEXPORT jint JNICALL Java_com_dao_usbcam_Fimcgzsd_yuvtorgb 如果使用和UVC一样的处理 图像显示不出来 所以用另外一种方法 同时这里使用的是斯道ICOOL210开发板测试的 如果使用CMOS还需要修改一些地方 HAL层修改如下 首先增加一个函数如下 int select_input(int input

js实现的div拖动效果实例代码

js实现的div拖动效果实例代码:div的拖动效果在很多效果中都有应用,当然还有很多附加的功能,本章节只是给拖动效果,并介绍一下它的实现过程.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <t

Spring3.0实现REST实例

Spring3.0实现REST实例 这是一个rest风格的访问,Spring从3.0开始将全面支持rest.不得不感叹Spring的强悍. 项目结构: 第一步永远是配置,使用框架永远都是先有配置,在web.xml中的配置: [xhtml] view plaincopy <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://