[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 或扩 ...
随机推荐
- 前端开发之jQuery位置属性和筛选方法
主要内容: 1.jQuery的位置属性及实例 (1)位置属性 (2)实例 --- 仿淘宝导航栏 2.jQuery的筛选方法及实例 (1)筛选方法 (2)实例一:嵌套选项卡 (3)实例二:小米官网滑动 ...
- SQLServer性能优化之---水平分库扩展
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 第一次引入文件组的概念:http://www.cnblogs.com/dunitia ...
- 监测IIS上网站的连接数
1.运行,输入,perfmon.msc 2.性能监视器>右侧区域>右键 添加计数器 3.在“可用计数器” 区域,选择Web Service,展开Web Service,选择Current ...
- 2016-2017-20155329 《Java程序设计》第6周学习总结
学号 2016-2017-20155329 <Java程序设计>第6周学习总结 教材学习内容总结 数据从来源取出:输入串流 java.io.InputStream 写入目的的:输出串流 j ...
- iOS密码输入框的实现
[iOS密码输入框的实现] 就是一个UITextField,把属性 UITextField.secureTextEntry设置为Yes即可.此种UI效果为iOS默认效果.
- 8 种提升 ASP.NET Web API 性能的方法 (转)
出处:http://www.oschina.net/translate/8-ways-improve-asp-net-web-api-performance ASP.NET Web API 是非常棒的 ...
- platform总线驱动代码分析
/************************************************************************/ Linux内核版本:2.6.35.7 运行平台:三 ...
- android分屏
上手了Android N Preview,第一个不能错过的新特性就是App分屏的支持.Android7.0原生系统就可以支持两个App横屏并排或者竖屏上下摆放了.第二个新特性就是在Android TV ...
- Objective-C 学习笔记(五) 指针
Objective-C 指针 每一个变量是一个内存位置和每一个存储单元都有其定义的地址,可以使用符号(&)的运算符,它表示内存中的地址访问. a. 我们定义一个指针变量 b. 分配一个指针变量 ...
- C#动态编译引擎-CS-Script 简单使用
Technorati 标记: cs-script 介绍可以参看 http://www.cnblogs.com/shanyou/p/3413585.html 还可以参看 这个 项目介绍 性能测试 c ...