2013-04-29 2 views
2

У меня есть сцена с несколькими объектами в виде мувиклипов, которые можно щелкнуть по одному. Что происходит, так это то, что я могу щелкнуть каждый объект и щелкнуть переключатель сцены на следующий кадр.предотвратить следующую рамку сцены на мувиклике movieclip

Как это изменить?

В принципе у меня есть ключ и дверь, как мувиклипы. Вы можете получить ключ, он исчезает, и после этого вы можете щелкнуть дверь, чтобы открыть ее. Что на самом деле происходит, вы оба можете нажать ключ и дверь. Когда вы нажимаете на кнопку, она работает по назначению, но когда вы нажимаете на дверь, ключ все еще исчезает. Это гораздо более раздражает более чем 2 объекта.

код ключа:

addEventListener(MouseEvent.CLICK, CollectKey); 

function CollectKey(event: MouseEvent): void 
{ 
    this.visible = false; 
    // door 
    MovieClip(root).door.addEventListener(MouseEvent.CLICK, MovieClip(root).FinishGame); 
} 

код двери:

stop(); 

function FinishGame(event: MouseEvent): void 
{ 
    if(MovieClip(root).currentFrame == 4) 
    { 
     nextFrame(); 
    } 
} 

http://www.wuala.com/sollniss/stuff/Untitled-2.swf/
http://www.wuala.com/sollniss/stuff/Untitled-2.fla/

+0

'this.nextFrame()'? – David

+0

Не помогает. Я могу даже щелкнуть объекты, содержащие только «stop();», и следующий кадр сцены все равно активируется. Трудно объяснить, потому что сегодня я начал флешку. – sollniss

+0

Я нашел ошибку. Я не упоминал ссылку на объект на моем титульном экране. – sollniss

ответ

0

EDIT

После глядя на ваш .fla, я могу видеть Ваш вопрос:

На вашем первом кадре, у вас есть следующий скрипт:

stop(); 

addEventListener(MouseEvent.CLICK, StartGame); 

function StartGame(event: MouseEvent): void 
{ 
    nextFrame(); 
} 

Вы, вероятно, не знают, что мыши слушатель вы добавляете туда, не уходит, пока вы не скажете ему (даже если кадр меняется). Вот почему каждый клик вызывает следующий кадр.

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

function StartGame(event: MouseEvent): void 
{ 
    removeEventListener(MouseEvent.CLICK, StartGame); 
    nextFrame(); 
} 
+0

У меня было это как раньше, но я всегда сталкивался с 'Символ 'movKey', Layer 'Layer 1', Frame 1, Line 3 \t 1120: Доступ к неопределенному ключу свойства .'. Если я использую 'MovieClip (root) .key.addEventListener (MouseEvent.CLICK, CollectKey);' он ничего не делает с моей проблемой. – sollniss

+0

Я отредактировал первое сообщение. – sollniss

+0

Кроме того, вы можете удалить все файлы 'MovieClip (root)', так как весь ваш код запускается на корневой временной шкале в любом случае. – BadFeelingAboutThis

0

И, может быть, что видно только ложь не достаточно, вы также должны установить Enabled = ложь и mouseEnabled = false для ключевого элемента, потому что без него он будет продолжать слышать событие клика.