作者cjcat2266 (CJ Cat)
看板Flash
標題[研究] Carousel - 旋轉木馬API
時間Mon Aug 4 21:52:36 2008
因為工作的需求,所以我做了這個API出來
(到大阪玩還要連夜趕工啊...orz)
大家應該常常需要寫類似"旋轉選單"的東西
於是我就綜合了一些常用功能,生出一個Carousel API
先來看看Carousel的範例吧
線上觀看
http://0rz.tw/3f4y6
原始檔案
http://0rz.tw/9e4zb
Carousel的簡單使用說明如下:
(產生十個Ball物件繞著Box物件旋轉)
1.生出一個旋轉木馬(Carousel)物件
import idv.cjcat.display.carousel.*;
var carousel:Carousel = new Carousel();
2.生出小馬(Pony)物件
var count:int = 10;
for (var i:int = 0; i < count; i++) {
var pony:Pony = new Pony(new Ball(), 2 * Math.PI / count *i);
↑小馬外表 ↑小馬相位(phase)
carousel.add(pony);
}
3.設定軸心物件(axis)
carousel.axis = new Box();
4.設定旋轉木馬的一些參數
carousel.centerX = 320; //中心x座標
carousel.centerY = 200; //中心y座標
carousel.radiusX = 200; //橫向半徑
carousel.radiusY = 75; //縱向半徑
carousel.centerS = 0.7; //尺寸(scale)變化中心值
carousel.radiusS = 0.3; //尺寸變化幅度
carousel.centerA = 0.5; //同centerS,只是此為透明度(alpha)的中心值
carousel.radiusA = 0.7; //同radiusS,只是此為透明度的變化幅度
carousel.centerR = 0; //旋轉角度(rotation)中心值
carousel.radiusR = 90; //旋轉角度變化幅度
5.持續呼叫carousel.render()來更新
並且在render之前做想做的調整動作
addChild(carousel); //不要忘記將carousel加入到display list中唷
addEventListener(Event.ENTER_FRAME, render);
function render(e:Event):void {
carousel.phase = getTimer() / 300; //中心參考相位持續改變
carousel.render(); //更新carousel
}
6.完成
就是這樣
以上
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓
Blog
http://cjcat.blogspot.com
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.202.223.3
推 etrexetrex:旋轉木馬是這樣上下的哦 0.0 我以為是分開上下 08/05 01:31
推 scars:另外就是 startDrag 一次只能一個物件 08/05 03:59
→ scars:所以用 startDrag 的話,換了游標之後就不能再去拖曳其他東西 08/05 04:00
推 scars:.........我推錯 08/05 18:27