[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: 871979853@qq.com
* @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);
}
}
}
[ActionScript 3.0] 幻灯片效果实例的更多相关文章
- [ActionScript 3.0] 如何获得实例对象的类名及类
package { import flash.display.DisplayObject; import flash.display.MovieClip; import flash.display.S ...
- [ActionScript 3.0] 喷泉效果
pall为水珠影片剪辑 var count:int = 500; var zl:Number = 0.5; var balls:Array; balls = new Array(); for (var ...
- [ActionScript 3.0] 翻牌效果,运用语法rotationY,PerspectiveProjection
package { import com.tweener.transitions.Tweener; import flash.display.Bitmap; import flash.display. ...
- ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0,现把学习结果分享一下,希望对新手有帮助. 目录 ActionScript 3.0简介 Hello ...
- [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
本文转自:http://www.cnblogs.com/artwl/p/3396330.html 近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0, ...
- Flash 开发环境搭建和文字滚动效果实例
Flash 开发环境搭建和文字滚动效果实例 一.Flash 开发环境搭建 Flash发布的时候可以将资源(即将库中的元件)集成到swf运行文件中.Flash没有代码自动输入补全功能,因此需要一个英文一 ...
- [ActionScript 3.0] 正则表达式
正则表达式: 正则表达式最早是由数学家Stephen Kleene在对自然语言的递增研究成果的基础上,于1956提出来的.具有完整语法的正则表达式,主要使用在字符串的格式的匹配方面上,后来也逐渐应用到 ...
- 【jquery】幻灯片效果
闲着无聊,用Jquery写了一个幻灯片效果. 我这人喜欢造轮子,除了jquery这种有强大开发团队的框架级别JS,其实的一些小程序都是尽量自己写. 一是因为怕出问题了没人问,二是自己写的改起来也方便. ...
- [ActionScript 3.0] AS3.0 动态加载显示内容
可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...
随机推荐
- python's try&except&else
[python's try&except&else] python的try&catch有个好用的东西,else,即try&except&else可以共用,els ...
- 使用net Manager工具配置远程连接oracle
一,在服务端配置oracle端口在命令行中输入netca命令,打开相关配置默认端口号为1521 二,配置端口后使用Telnet工具调试端口是否联通 在命令行输入telnet 服务器ip 端口号 三,找 ...
- Java项目的结构
-------siwuxie095 以 Hello World 为例 这个工程用一个文件夹表示,被放置在左侧的资源管理面板 Package Explorer 中 ...
- 在Linux下删除文件及文件夹(rm)
删除目录.文件 rm(remove) 功能说明:删除文件或目录.语 法:rm [-dfirv][--help][--version][文件或目录...]补充说明:执行rm指令可删除文件或目录,如欲删除 ...
- static变量和static函数
在C语言编程中,static的一个作用是信息屏蔽! 比方说,你自己定义了一个文件 -- 该文件中有一系列的函数以及变量的声明和定义! 你希望该文件中的一些函数和变量只能被该文件中的函数使用,那么,你可 ...
- 安卓开发解决android.os.NetworkOnMainThreadException异常方法(主线程不能直接调用webservice)
安卓开发解决android.os.NetworkOnMainThreadException异常方法 2013-01-07 14:01:04| 分类: 技术 | 标签:安卓 技术 java | ...
- CHANGE DETECTION IN ANGULAR 2
In this article I will talk in depth about the Angular 2 change detection system. HIGH-LEVEL OVERVIE ...
- Web挖掘
Web挖掘 Web挖掘的目标是从Web的超链接.网页内容和使用日志中探寻有用的信息.依据Web挖掘任务,可以划分为三种主要类型:Web结构挖掘.Web内容挖掘和Web使用挖掘.Web结构挖掘简单的说就 ...
- 关于:Warning: skipping non-radio button in group的处理方法整理
下面讲的是一个意思: The problem is that the next control in the tab order following the last radio button of ...
- ZOJ3770Ranking System 2017-04-14 12:42 52人阅读 评论(0) 收藏
Ranking System Time Limit: 2 Seconds Memory Limit: 65536 KB Few weeks ago, a famous software co ...