AS3: gotoAndPlay не работает

Я пытаюсь перейти к AndPlay, используя AS3, в определенном фрейме внутри символа, мой целевой фрейм находится внутри другого символа, которым является "Carrera" (имя класса). Оба символа были размещены на сцене путем перетаскивания из библиотеки.

Я пробовал с:

MovieClip(carrera).gotoAndPlay(1);

Вывод ошибки:

TypeError: Error #1034: Type Coercion failed: cannot convert carrera$ to flash.display.MovieClip.
    at fondoUcreativa/frame500()

Также пробовали с:

carrera.gotoAndPlay(1);

Ошибка компилятора:

Symbol 'fondo Ucreativa', Layer 'Layer 2', Frame 500, Line 4    1061: Call to a possibly undefined method gotoAndPlay through a reference with static type Class.

person Gabriel Meono    schedule 25.11.2011    source источник


Ответы (2)


Чтобы использовать метод gotoAndPlay, ваш класс Carrera должен расширять MovieClip.

person Sr.Richie    schedule 25.11.2011
comment
Является ли Carrera классом, определяемым кодом, или это что-то, что есть в вашей библиотеке? - person Sr.Richie; 25.11.2011
comment
Назначается с использованием свойств библиотеки. Связь - person Gabriel Meono; 25.11.2011
comment
И когда вы назначили ему связь, вы определили Movie Clip как базовый класс? - person Sr.Richie; 25.11.2011
comment
Где я могу это сделать? Я поместил объект на сцену, перетащив его. - person Gabriel Meono; 25.11.2011
comment
Щелкните правой кнопкой мыши объект в вашей библиотеке и выберите «Свойства». Проверьте в разделе компоновки, есть ли в базовом классе flash.display.MovieClip. Если это уже так (а я предполагал, что это так, потому что это настройка по умолчанию, когда вы выбираете экспорт для actionscript), то проблема в другом. Возможно, вы перетаскиваете экземпляр на сцену и не назначаете ему имя экземпляра. - person Sr.Richie; 25.11.2011
comment
Вы были правы, я не делал связь для символа на сцене, я делал это только для библиотеки. Carrera.gotoAndPlay(1); не сработало, но MovieClip(root).Carrera.gotoAndPlay(1); сделал работу. Спасибо! - person Gabriel Meono; 25.11.2011

Ты сам это сказал. carrera — это класс, а не экземпляр. Следовательно, вы не можете получить доступ к carrera.gotoAndPlay(), который является методом экземпляра, а не статическим методом.

Вам нужно будет назвать экземпляр этого класса (скажем, carreraInst) на панели свойств.

Затем вы можете назвать это как carreraInst.gotoAndPlay(1);

Несколько не по теме: имена классов по соглашению начинаются с заглавной буквы, поэтому должно было быть Carrera вместо carrera

person Pranav Hosangadi    schedule 25.11.2011
comment
Не работает. CarreraIns.gotoAndPlay(1);Выдает следующую ошибку Symbol 'fondo Ucreativa', Layer 'Layer 2', Frame 500, Line 3 1061: Call to a possibly undefined method gotoAndPlay through a reference with static type Class. Я дважды проверил имя класса. - person Gabriel Meono; 25.11.2011