as3分页——页数多了后自动居中类似谷歌分页
4月21,学习心的
{
import flash.display.Loader;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import myapp.model.RoomProxy;
import org.puremvc.as3.interfaces.IMediator;
import org.puremvc.as3.patterns.mediator.Mediator;
public class ActorListMediator extends Mediator implements IMediator
{
static public const NAME:String = "ActorListMediator";
private var _al:actorList;
private var _od:int = 0;
private var _allArray:Array;
private var _sa:actorCell;
public var _goHall:Boolean = false;
public function ActorListMediator(obj:Object=null)
{
super(NAME, obj);
_al.x=6;
_al.y=138;
initPageBtn();
main.addChild(_al);
}
/**
* 改变页数的方法
* ---------------------------↓ 总页数-------↓ 当前页数
**/
private function doChangePage(pageCount:int,nowPage:int):void{
//间距 27
if(pageCount == nowPage){
_al.btnDown.visible = false;
_al.btnUp.visible = true;
}
if(nowPage == 1){
_al.btnDown.visible = true;
_al.btnUp.visible = false;
}
if(pageCount == 1){
_al.btnDown.visible = false;
_al.btnUp.visible = false;
}
for(var i:uint = 1;i<11;i++){
if(i<=pageCount){
_al["btn"+i+""].visible = true;
}
_al["btn"+i+""].txt.text = i;
_al["btn"+i+""].addEventListener(MouseEvent.CLICK,pageBtnClick);
}
_al.btnUp.addEventListener(MouseEvent.CLICK,pageBtnClick);
_al.btnDown.addEventListener(MouseEvent.CLICK,pageBtnClick);
_al.btnMask.x = _al["btn"+nowPage+""].x;
_al.btnMask.txt.text = _al["btn"+nowPage+""].txt.text;
}
public function get getMain():Main{
return viewComponent as Main;
}
private function initPageBtn():void{
for(var i:uint = 1;i<11;i++){
_al["btn"+i+""].visible = false;
}
_al.btnDown.txt.text = "下一页";
}
private function pageBtnClick(e:MouseEvent):void{
switch(e.target.txt.text){
case "1":_al.btnUp.visible = false;
_al.btnDown.visible = true;break;
//case Math.ceil(_allArray.length/12)+"":_al.btnUp.visible = true;
case "20":_al.btnUp.visible = true;
_al.btnDown.visible = false;break;
default :
//不是第一个,也不是最后一个,中间的情况,如果点击第6个,位移←,
btnMove(e.target.txt.text,e.target.name);
}
}
/**
* 根据按钮名字所判断执行的操作
* ---------------------↓ 页数------↓ 被点中的按钮名称
**/
private function btnMove(txt:String,name:String):void{
switch(name){
case "btn1":doMove(4,false,parseInt(txt));break;
case "btn2":doMove(3,false,parseInt(txt));break;
case "btn3":doMove(2,false,parseInt(txt));break;
case "btn4":doMove(1,false,parseInt(txt));break;
case "btn5":if(Math.ceil(_allArray.length/12)==5){
_al.btnUp.visible = true;
_al.btnDown.visible = false;
}else{
_al.btnUp.visible = true;
}break;
case "btn6":doMove(1,true,parseInt(txt));break;
case "btn7":doMove(2,true,parseInt(txt));break;
case "btn8":doMove(3,true,parseInt(txt));break;
case "btn9":doMove(4,true,parseInt(txt));break;
case "btn10":doMove(5,true,parseInt(txt));break;
case "btnUp":doMove(1,false,parseInt(txt),1);break;
case "btnDown":doMove(1,true,parseInt(txt),2);break;
}
}
/**
* --------------------↓移动数量-------↓移动方向-----------
* -------------------------------点中的页数--↓是否上页-1是,2下页,3其他↓
**/
private function doMove(moveTotal:int,direction:Boolean,txt:int,isUp:int=3):void{
var temp:int;
//上页可能出现没有第2页的问题,这个是中间变量!
var tr:Boolean = false;
if(isUp == 1){
txt = parseInt(_al.btnMask.txt.text);
txt--;
tr = true;
}
if(isUp == 2){
txt = parseInt(_al.btnMask.txt.text);
txt++;
}
if(txt<=5 && _al.btn1.txt.text == "1"){
if(txt == 1){
_al.btnUp.visible = false;
}else{
_al.btnUp.visible = true;
}
for(var i2:int = 1;i2<=5;i2++){
temp = parseInt(_al["btn"+i2].txt.text);
if(temp == txt){
_al.btnMask.x = _al["btn"+i2].x;
_al.btnMask.txt.text = _al["btn"+i2].txt.text;
}
}
return;
}
//if((txt+5) >= Math.ceil(_allArray.length/12) && parseInt(_al.btn10.txt.text) == Math.ceil(_allArray.length/12)){
if((txt+5)>=(20) && _al.btn10.txt.text == "20"){
//if(txt == Math.ceil(_allArray.length/12))
if(txt == 20){
_al.btnDown.visible = false;
}else{
_al.btnDown.visible = true;
}
for(var i3:int = 5;i3<=10;i3++){
temp = parseInt(_al["btn"+i3].txt.text);
if(temp == txt){
_al.btnMask.x = _al["btn"+i3].x;
_al.btnMask.txt.text = _al["btn"+i3].txt.text;
}
}
return;
}
if(direction){
//公式
//moveTotal>Math.ceil(_allArray.length/12)?Math.ceil(_allArray.length/12)-
moveTotal = parseInt(_al["btn10"].txt.text)+moveTotal>20?20-parseInt(_al["btn10"].txt.text):moveTotal;
for(var i:int=1;i<11;i++){
temp = parseInt(_al["btn"+i].txt.text)+moveTotal;
_al["btn"+i].txt.text = temp+"";
if(parseInt(_al["btn"+i].txt.text) == txt){
_al.btnMask.x = _al["btn"+i].x;
_al.btnMask.txt.text = _al["btn"+i].txt.text;
}
}
_al.btnUp.visible = true;
}else{
//公式
moveTotal = parseInt(_al["btn1"].txt.text)-moveTotal<0?moveTotal-(moveTotal-parseInt(_al["btn1"].txt.text)):moveTotal;
for(var j:int=1;j<11;j++){
if(tr){
temp = parseInt(_al["btn"+j].txt.text)-moveTotal;
}else{
if(parseInt(_al["btn1"].txt.text)-moveTotal == 0){
temp = parseInt(_al["btn"+j].txt.text)-moveTotal+1;
}else{
temp = parseInt(_al["btn"+j].txt.text)-moveTotal;
try{
if(temp == parseInt(_al["btn"+(j-1)].txt.text)){
temp ++;
}
}catch(e:Error){}
}
}
_al["btn"+j].txt.text = temp+"";
if(parseInt(_al["btn"+j].txt.text) == txt){
_al.btnMask.x = _al["btn"+j].x;
_al.btnMask.txt.text = _al["btn"+j].txt.text;
}
}
_al.btnDown.visible = true;
}
}
}
}
残缺的类,完整的分页片段,给自己参考!
转自:http://fashionwll.blog.163.com/blog/static/8255017720093213117668/
转载于:https://www.cnblogs.com/qiantuwuliang/archive/2010/04/16/1713429.html
as3分页——页数多了后自动居中类似谷歌分页相关推荐
- php 分页 页数多,一个php页面多个分页共存
PHP 分页 写了个php分页的自定义函数,用着感觉挺好: pageFunc($dataNum,$pageSize,$pageName)//记录集,每页显示的条数,分页名 今天突然在想,如果我一个页面 ...
- php分页页数过多隐藏,织梦DEDE中内容页分页数目太多时隐藏方法
在dede程序的文章或图集模型,内容页分页过多,假如分页80页,那么dede默认的内容分页标签{dede:pagebreak/}会把所有的分页都显示出来,这样会撑破网页模板,即使使用css控制可以解决 ...
- element ui分页怎么做_element ui里面table分页,页数从0开始的怎么做?
需求: 后台请求的接口是从0页开始的,但是pagination是从1开始的,就是在点击pagination的第1页是后台转0 1首先在data里面定义为1,其他地方也是定义1 return { for ...
- 计算分页页数或索引在第几页
int totalCount = 100; int totalPageNo = 0; int pageSize = 10;//计算共多少页 totalPageNo = totalCount % pag ...
- layui分页组件layPage动态调整总页数
我的小工程的前端使用了layui,这也是当时临时上网查到的一个框架,感觉风格简约,而且据称对后端开发人员很友好. 在使用layui的过程中,我遇到了一些问题,在这里将几个个人感觉比较棘手的问题列举一下 ...
- C#分页的总页数算法
.Net中通用分页页数计算方式,分页的总页数算法 总记录数:totalRecord 每页最大记录数:maxResult 算法一: totalPage = totalRecord % maxResul ...
- php分页代码 页数太多,php google或baidu分页代码
php实现google与baidu的分页代码,需要的朋友可以参考下. /** 作者:潇湘博客 时间: 2009-11-26 php技术群: 37304662 使用方法: include_once'Pa ...
- php分页代码 页数太多,php分页函数示例代码分享
一例php分页函数代码. 分享一例php分页函数代码,用此函数实现分页代码很不错. 代码,php分页函数. /* * 使用方法: require_once('mypage.php'); $result ...
- mysql分页总页数算法解析_详解MySQL的limit用法和分页查询语句的性能分析
limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. SELECT * FROM table LIMIT ...
最新文章
- 对硕士而言,编制和稳定究竟有多重要?
- centos 6.5下KVM环境搭建
- 使下拉框某项不可选的方法
- 机器学习与数学分析(一)
- 了解自定义对象创建:JSON绑定概述系列
- java学习(109):StringBuilder,stringbuffer,string区别
- scrollTop 用法说明
- 将SWF、FLV插入PowerPoint
- Python socket non-blocking with SSL 的问题
- Centos6.x升级内核方法支持Docker
- 1080 MOOC期终成绩(25 分)
- SQL200修改服务器IP,如何修改SQL IP地址
- rust大量科技零件_20世纪的黑科技有上万个零件,复杂程度10个人9个看不懂!
- Windows与Linux双系统设置默认引导项与删除引导项
- Form表单校验_座机号、电话号码
- OFDM和OFDMA区别笔记
- Linux signal那些事儿【转】
- linux什么意思中文翻译,linux中文
- 蓝牙模块XY-MBD07A的介绍及使用方法(超详解)
- SpringCloud Edgware.SR3版本-Ribbon的timeout设置
热门文章
- 人工智能 | 人脸识别研究报告(人才篇)
- TortoiseSVN新人使用指南
- CEdit 控件 更新内容的 方法(可以自动滚动至末尾)
- SQLite中的高级SQL
- java 文件提前结束_java – org.xml.sax.SAXParseException:过早结束文件
- python源码精要(5)-C代码规范
- 【Python】干货分享 | Pandas处理时间序列的数据
- 一文教你机器学习场景化分析!
- 【论文解读】AAAI21最佳论文Informer:效果远超Transformer的长序列预测神器!
- 震惊了!每30秒学会一个Python小技巧,Github星数6000+