2016-09-21 3 views
1

Im пытается переключить кадры в инструкции if, когда «собирает» элементы.Переключение кадров в MC в случае с AS3

В основном у меня есть 3 карты, и при каждой выбранной карте рамка должна перейти к следующему кадру. После того, как я заберу одну карту, она перейдет к следующему кадру. Проблема в том, что когда я забираю вторую карту, она НЕ продвигает рамку.

Вот мой код:

stage.addEventListener(Event.ENTER_FRAME, growVisible); 

function growVisible(grow: Event) { 
if (map1.hitTestPoint(character.x,character.y, true)) { 
    darkness.gotoAndStop(currentFrame + 1); 
    map1.visible = false; 
} 
if (map2.hitTestPoint(character.x, character.y, true)) { 
    darkness.gotoAndStop(currentFrame + 1); 
    map2.visible = false; 
} 
if (map3.hitTestPoint(character.x, character.y, true)) { 
    darkness.gotoAndStop(currentFrame + 1); 
    map3.visible = false; 
} 
} 

«темнота» является пункт им пытаются выдвинуть рамку. map1, map2, map3, являются элементами, которые они собирают для этого.

Ive также попытался код, как это не повезло:

function growVisible(grow: Event) { 
if (map1.hitTestPoint(character.x,character.y, true)) { 
    darkness.gotoAndStop(2); 
    map1.visible = false; 
    if (darkness.currentFrame == 2) { 
     darkness.gotoAndStop(3); 
    } else if (darkness.currentFrame == 3) { 
     darkness.gotoAndStop(4); 
    } 
} if (map2.hitTestPoint(character.x, character.y, true)) { 
    darkness.gotoAndStop(2); 
    map2.visible = false; 
    if (darkness.currentFrame == 2) { 
     darkness.gotoAndStop(3); 
    } else if (darkness.currentFrame == 3) { 
     darkness.gotoAndStop(4); 
    } 
} if (map3.hitTestPoint(character.x, character.y, true)) { 
    darkness.gotoAndStop(2); 
    map3.visible = false; 
    if (darkness.currentFrame == 2) { 
     darkness.gotoAndStop(3); 
    } else if (darkness.currentFrame == 3) { 
     darkness.gotoAndStop(4); 
    } 
} 
} 

Любая помощь будет принята с благодарностью.

ответ

1

Я считаю, что всегда должен сказать

darkness.gotoAndStop(darkness.currentFrame + 1); 

Вы хотите 'график darkness для продвижения, не так ли? Только «currentFrame» относится к текущей Рамка MovieClips, которая всегда остается на 1, я полагаю?

+1

Или просто используйте ['darkness.nextFrame()'] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/MovieClip.html#nextFrame()). – null

+0

Я попробовал оба этих предложения, все еще не повезло. Я ценю помощь до сих пор. – Jackson

+0

Остается ли вторая карта? Если это так, проверьте, действительно ли у вашей темноты больше кадров. Попробуйте поставить след перед map2.visible = false: trace ("darkframe currentframe:" + darkness.currentFrame + ", totalframes:" + darkness.totalFrames); и посмотреть, что вы получаете на консоли – Philarmon