二月 2, 2010 12 : 08 下午 此格有 44 个脚印
即时获得麻球游戏开发的最新消息,关注游戏开发者热门讨论,请各位开发者申请加入麻球官方群:121304476
也可以follow catfly围脖:t.sina.com.cn/iscat
也可以follow catfly围脖:t.sina.com.cn/iscat
这个类最新的版本:滚屏翻页类新版本rollPage2
这个类很好用,它可以完成多个内容的分页,滚屏与翻页功能。垂直或水平翻滚都可以,而且会自动计算是否到达第一页或者最后一页。
看看这个例子,我经常用到这个类。
This movie requires Flash Player 9
先来看看它有哪些参数:
RollPage($pageMc:Sprite,$vars:Object,$aix:String=”x”)
$pageMc:Sprite :把所有内容都放在这个容器中,如多个图片或者各分页内容
$vars:Object :这个对象会接收五个参数
$vars["totalNum"]:总内容个数,比如总共多少张图片
$vars["pageNum"]:设定每而或每屏显示多少个内容,比如每页显示几张图片
$vars["childPad"]:设置每个内容之间的间隔距离
$vars["childWidth"]:设置每个内容的高度
$vars["childHeight"]:设置每个内容的宽度
$aix:String :设置为垂直还是水平翻滚
使用这个类的方法:
rollPage类使用注意:
//所有的图片都在vImageMc中,
//vImageMc在别的容器中,必须保证vImageMc的x,y坐标都为0
var pageRoll:RollPage=new RollPage(vImageMc,{totalNum:12,pageNum:5,childWidth:100,childHeight:75,childPad:15});
//左右按钮
left.buttonMode=right.buttonMode=true;
left.addEventListener(MouseEvent.CLICK, function (e:MouseEvent):void{pageRoll.toRoll(pageRoll.page-1);});
right.addEventListener(MouseEvent.CLICK, function (e:MouseEvent):void{pageRoll.toRoll(pageRoll.page+1);});
每页中的内容如何排列,可以看看《加载图片(读取xml,json数据)并进行阵列》
实例文件下载:rollPage.rar
完整的类文件:
package {
import flash.display.Sprite;
import com.gs.TweenLite;
/**
* @author robin
*/
public class RollPage {
private var pageMc:Sprite;
private var vars:Object;
private var aix:String;
private var pageNum:uint=1;
private var childNum:uint;
private var pageChild:uint;
private var spanLength:uint;
private var childWidth:uint;
private var childHeight:uint;
private var childPad:uint;
public function RollPage($pageMc:Sprite,$vars:Object,$aix:String="x") {
pageMc=$pageMc;
vars=$vars;
aix=$aix;
childNum=$vars["totalNum"];
pageChild=$vars["pageNum"];
childPad=$vars["childPad"];
childWidth=$vars["childWidth"];
childHeight=$vars["childHeight"];
var mask:Sprite;
if ($aix=="x") {
spanLength = (childWidth+childPad)*pageChild;
mask=makeArea(spanLength,childHeight);
} else if ($aix == "y") {
spanLength = (childHeight+childPad)*pageChild;
mask=makeArea(childWidth,spanLength);
}
var pageParent:Sprite=pageMc.parent as Sprite;
pageParent.addChild(mask);
mask.x=pageMc.x;
mask.y=pageMc.y;
pageMc.mask=mask;
}
public function toRoll($pageNum:uint):void {
if ($pageNum<=0) { trace("firepage"); } else if ($pageNum > Math.ceil(childNum/pageChild)) {
trace("endpage");
} else {
if (aix=="x") {
TweenLite.to(pageMc,.5,{x:-($pageNum-1)*spanLength});
} else if (aix == "y") {
TweenLite.to(pageMc,.5,{y:-($pageNum-1)*spanLength});
}
pageNum=$pageNum;
}
}
public function set page(num:uint):void {
this.pageNum=num;
}
public function get page():uint {
return this.pageNum;
}
private function makeArea(w:uint,h:uint,alpha:Number= 0.5):Sprite {
var area:Sprite=new Sprite ;
area.alpha=alpha;
area.graphics.beginFill(0x000000,1);
area.graphics.drawRect(0,0,w,h);
area.graphics.endFill();
return area;
}
}
}







能否提供这个类的具体使用方法的源码 zz[引用]