2015-03-11 4 views
0

Я сделал клип с несколькими кнопками внутри. Идея этого заключалась в том, чтобы позволить использовать систему прокрутки. Единственная проблема заключается в том, что я не могу понять, как связать кнопку внутри фрагмента ролика с рамкой вне ролика и на главной сцене.Как связать кнопку внутри видеоклипа в мейнфрейме (flash CS6 AS3)

Мой код атм:

stop(); 
import flash.events.MouseEvent; 

sports1.addEventListener(MouseEvent.CLICK,sport1) 

function sport1(e:MouseEvent) 

{ 
    MovieClip(root).gotoAndStop(sports) 
} 

Что я хотел бы случиться, что каждая кнопка внутри видеоклипа заберет меня в определенный кадр на главной сцене, как навигационная система. Я действительно новичок в flash, поэтому пока не могу понять все технические термины, поэтому будьте легко на меня :)

+0

'gotoAndStop (sports)' не будет работать, потому что спорт, кажется, не определен. Является ли «спортивным» название frameLabel? Попробуйте обернуть его в цитаты, чтобы сделать его строкой. – Karmacon

+0

Извините, в моем коде я использовал цитаты, я получаю это сообщение об ошибке: TypeError: Error # 1009: Не удается получить доступ к свойству или методу ссылки на нулевой объект. \t в app_Scene1_fla :: MainTimeline/eScrollDown1() [app_Scene1_fla.MainTimeline :: frame5: 38] Я слышал, что это будет работать только в AS2 :( – Shaun

+0

ошибка исходит из основной временной шкалы в кадре 5, строка 38 в функция, называемая 'eScrollDown1()' – Karmacon

ответ

0

Итак, если вы создаете главный видеоклип на сцене и имеете внутренние клипы, которые действуют как кнопки , Вы хотите, чтобы эти внутренние кнопки отображали вас на разных кадрах на основной сцене, когда пользователь взаимодействует с ними.

Вот как вы это сделаете.

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

sports1.mcButton.addEventListener(MouseEvent.CLICK,sport1) 
sports1.mcButton.buttonMode = true; 

затем, если вы хотите эту кнопку, при нажатии, чтобы перейти к кадру 2 на главной сцене вы бы просто сделать это в sport1 функции:

function sport1(e:MouseEvent):void 
{ 
     gotoAndStop(2); 
} 

Я выбрал sports1.mcButton.buttonMode = true; таким образом, что он интерактивен, т. Е. Доступен.

+0

Спасибо! Flash, похоже, имеет проблему с 'startScreen.button.buttonMode = true;' строка, хотя и когда я беру это, я получаю 'TypeError: Ошибка # 1009: Не удается получить доступ к свойству или методу ссылки на нулевой объект. в app_Scene1_fla :: MainTimeline/eScrollDown1() [app_Scene1_fla.MainTimeline :: frame5: 38]'. когда я беру все код кнопки, приложение работает нормально! – Shaun

+0

Извините, что «startScreen.button.buttonMode = true;» должен был быть 'startScreen.mcButton.buttonMode = true; ' Моя вина. Так этот ответ помог вам в вашей ситуации? – Nathan

+0

Довольно много любого имени экземпляра, которое вы даете своим внутренним «детям», т. Е. Вашим внутренним видеоклипам, которые вы должны ссылаться на них после того, как вы впервые обратитесь к основному видеоклипу. Не знаю, знаете ли вы о «parent.child» – Nathan

Смежные вопросы