[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 或扩 ...
随机推荐
- 【Git】二、安装配置
一.Git安装 Linux $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev $ ap ...
- 62. Unique Paths (Graph; DP)
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...
- Django基础学习二
今天继续学习django的基础 学习用户提交url如何获得返回值 1.首先需要在工程的urls文件定义指定的urls要路由给哪个函数 在这个例子中,我们定义home的urls路由给views里的tes ...
- Notebook computer(Ubuntu)
==============Mask_RCNN============== source activate flappbird cd /home/luo/Desktop/MyFile/MaskRCNN ...
- jquey下eq()的使用注意事项
写在开始的话: 今天在公司路经同事工位,发现在写jquery代码,刚好遇见一个bug,于是驻足看了一会,发现了jq遍历方法中eq()的使用的一个容易犯错的地方. 同事的代码大概意思是这样的: < ...
- Java Thread系列(十)Future 模式
Java Thread系列(十)Future 模式 Future 模式适合在处理很耗时的业务逻辑时进行使用,可以有效的减少系统的响应时间,提高系统的吞吐量. 一.Future 模式核心思想 如下的请求 ...
- js去掉字符串前后空格的五种方法(转)
出处:http://www.2cto.com/kf/201204/125943.html 第一种:循环检查替换[javascript]//供使用者调用 function trim(s){ retu ...
- Linux 基础教程 43-su和sudo命令
在使用Linux系统中,有时候还需要做身份切换,这是为什么? 使用普通账号:系统日常操作的好习惯 虽然使用root对系统进行各种操作不受权限等方面的限制,但却存在重大的安全隐患,假如有人不 ...
- 大数据项目中js中代码和java中代码(解决Tomcat打印日志中文乱码)
Idea2018中集成Tomcat9导致OutPut乱码找到tomcat的安装目录,打开logging.properties文件,增加一行代码,覆盖默认设置,将日志编码格式修改为GBK.java.ut ...
- BOM Open Interface. Import Bills and Routings 无法打开
问题: 最近要做一些关于BOM的接口问题,用自己装好的 VM Linux Oracle EBS R12 Vision详细研究下关于BOM的 Open Interface: BOM.Substitute ...