2012-05-28 68 views
0

我製作了一個交互式幻燈片,其中所有圖像幻燈片在swf的開頭自動創建。根據Flash和AS3中MovieClip的y位置更改「alpha」,「scale」和「depth」

的第一步是成功的,我把所有的影片剪輯運行只是相對於圓的中心,代碼是在這裏

var menu:Sprite = new Sprite(); 
menu.x = 275; 
menu.y =180; 
menu.addEventListener(Event.ENTER_FRAME,moveMenu); 
addChild(menu); 

var disX:Number = 200; 
var disY:Number = 10; 
var speed:Number = 0; 

initMenu(3) 

function initMenu(n:int){ 
     for(var i:int;i<n;i++){ 
     var mc:MovieClip = new IconMenu(); 
     mc.scaleX = mc.scaleY = .5; 
     menu.addChild(mc); 
     } 

} 

function moveMenu(e:Event):void{ 
    var iconCount = menu.numChildren; 
    var depthArray:Array = new Array(); 
    var angle:Number = 360/iconCount; 

    for(var z:int;z<iconCount;z++){ 
     var mc:MovieClip = MovieClip(menu.getChildAt(z)); 
     mc.gotoAndStop(z+1); 
     mc.x = cosD(speed+angle*z)*disX; 
     mc.y = sinD(speed+angle*z)*disY; 
    } 
    speed+=2; 

} 

但畢竟這我不能夠計算像其他價值「阿爾法」,‘規模化’和‘深度’進行幻燈片放映更加逼真

所有三個值應根據mc.y來計算,因爲我覺得應該有一個透視效果

我對Flash和Actionscript3真的很陌生,任何人都可以幫助我嗎?!

真的非常感謝!

回答

0

希望能幫到你。


阿爾法 & 規模

上 - >低
下 - >高

mc.alpha = mc.y/menu.height; 

mc.scaleX = mc.scaleY = mc.y/menu.height; 

上 - >高
下 - >低

mc.alpha = 1 - mc.y/menu.height; 

mc.scaleX = mc.scaleY = 1 - mc.y/menu.height; 

深度

上 - >
向下的背後 - >前

for(var i:int = menu.numChildren - 1; i > -1; i--) 
{ 
    var mc1:MovieClip = menu.getChildAt(i) as MovieClip; 
    var mc2:MovieClip = menu.getChildAt(i) as MovieClip; 

    if(mc1.y < mc2.y) 
    { 
    if(menu.getChildIndex(mc1) > menu.getChildIndex(mc2)) 
    { 
     menu.swapChildren(mc1, mc2); 
    } 
    } 
} 

上 - >前
下 - >背後

for(var i:int = menu.numChildren - 1; i > -1; i--) 
{ 
    var mc1:MovieClip = menu.getChildAt(i) as MovieClip; 
    var mc2:MovieClip = menu.getChildAt(i) as MovieClip; 

    if(mc1.y > mc2.y) 
    { 
    if(menu.getChildIndex(mc1) < menu.getChildIndex(mc2)) 
    { 
     menu.swapChildren(mc1, mc2); 
    } 
    } 
}