2017-08-10 100 views
1

我試圖改變SKAction動畫的速度屬性。我有幾個菜單按鈕,帶有很少的圖像剪輯(來自短視頻剪輯)。現在我想改變這些剪輯的速度。首先,我試圖改變動畫SKAction的timePerSeconds,現在我發現SKAction本身有一個速度屬性。swift 3 SKAction速度屬性

但沒有什麼,速度= 0.0應該停止動畫,我試圖用動畫或repeatforever部分。有任何想法嗎?

// all anim sequences in an array 
var mainAktionArray = [SKAction()] 


let menuAnimation = SKAction.animate(with: menuFrames, timePerFrame: frameTime) 
let runForEver = SKAction.repeatForever(menuAnimation) 
mainActionArray.append(runForEver) 
menu.run(runForEver) 


func setFrameRate(wert : Float32){ 

menuSpeed = CGFloat(wert) 
menuSpeed = 0.0 

for el in mainActionArray { 
    el.speed = menuSpeed 
} 
} 

回答

1

當您調用運行命令時,它內部的動作被複制到節點,它不是一個引用。動作是不可變的對象,可以安全地跨多個節點使用它。這使您可以跨多個節點使用1個操作變量。

如果您想設置特定的速度,則需要將操作從節點中拉出。要做到這一點,你需要分配一個鍵,通過做menu.run(runForEver,withKey"runForEver"),然後你可以用let action = menu.action(forKey:"runForEver")然後設置action.speed = 0

+1

提取它好吧,我不需要把行動放在一個數組中,令人驚歎。 thanxs! – bluelemonade