Назначить SKAction, возвращаемый при запуске play() на SKAudioNode?

Документы, похоже, предполагают, что запуск воспроизведения на SKAudioNode возвращает SKAction

play() Создает действие, которое сообщает аудиоузлу начать воспроизведение.

class func play() -> SKAction

Итак, моя крошечная логика подсказывает мне, что я могу получить это возвращаемое действие и присвоить его переменной или константе следующим образом:

var mySoundAction = mySoundNode.run(SKAction.play())

Но Xcode говорит мне, что я идиот и понятия не имею, что делаю, когда пытаюсь это сделать:

self.run(mySoundAction)

Он говорит мне, что не может преобразовать тип void в тип SKAction.

Что я делаю не так? Насколько я заблуждаюсь в своих целях, чтобы иметь название действия для чего-то подобного?


person Confused    schedule 30.10.2016    source источник


Ответы (1)


SKAction.play()

возвращает SKAction и

mySoundNode.run(SKAction.play())

запускает это действие на mySoundNode. Метод run() возвращает Void ("ничего"), поэтому с

var mySoundAction = mySoundNode.run(SKAction.play())

вы запускаете действие «play» на узле и назначаете () на var mySoundAction. Возможно, вы имели в виду

var mySoundAction = SKAction.play()
// ... 
self.run(mySoundAction)
person Martin R    schedule 30.10.2016
comment
итак... по шкале от 1 до 10 я заблуждаюсь примерно на 8 баллов? 8,5? - person Confused; 31.10.2016
comment
о, мудрый, ты случайно не знаешь что-нибудь об этом: stackoverflow.com /questions/40429475/, я ничего не понимаю, сбит с толку и сбит с толку. - person Confused; 04.11.2016