Я не пытаюсь быть педантичным, но ваша проблема вряд ли так проста, как преобразование ActionScript 3.0 в JavaScript. AS3 по большей части является надмножеством JavaScript (см. ECMAcSript 4), поэтому преобразовать "вниз" в JavaScript легко:
nex.addEventListener(MouseEvent.CLICK, onClickHandler);
function onClickHandler(myEvent)
{
SoundMixer.stopAll();
MovieClip(parent).nextFrame();
}
Почти так же выглядит, верно? Вы только что удалили объявление типа MouseEvent
в myEvent
, потому что объявления типов — это функция ECMAScript 4, которая так и не вошла в JS (к сожалению).
Настоящая проблема заключается в том, что API браузера и API Flash Player сильно различаются. И даже если они могут быть похожими, они не обязательно одинаковы во всех браузерах. Теперь, чтобы быть справедливым, я думаю, что это действительно был ваш первоначальный вопрос, я просто хотел указать, что путь вперед включает в себя знание большого количества различий между функциями Flash Player и функциями браузера, потому что именно здесь будет большая часть работы. Это фактическое преобразование синтаксиса не должно быть слишком сложным.
Возвращаясь к вашему примеру, вот несколько отличий, на которые следует обратить внимание:
1) Хотя addEventListener()
является допустимым методом браузера (вопреки тому, что сказал комментатор), он не поддерживается в старых браузерах, таких как IE8. В этом случае вы можете использовать attachEvent()
, а в качестве окончательного запасного варианта вы можете использовать обратный вызов DOM onClick
. Дополнительные пояснения здесь.
2) Пока MouseEvent
существует в той или иной форме в браузере, в JS нет статических констант, поэтому вы не найдете таких вещей, как MouseEvent.CLICK
, определяемых браузером. Вместо этого вы просто будете использовать строку "click"
.
3) SoundMixer
— это функция Flash Player. Ближайшим эквивалентом в браузере будет аудио HTML5. Здесь есть много отличий, сделать аудио в браузере непросто, и у вас просто не будет такого же количества возможностей, как у звуковых API Flash Player. Я бы искал библиотеку, которая упрощает работу со звуком в браузере.
4) MovieClip
— это функция Flash Player. В браузере нет близкого аналога. На самом деле здесь нет простого ответа на вопрос о том, как воссоздать материал, похожий на временную шкалу, в браузере, но есть такие библиотеки, как CreateJS (создано пользователями Flash) или с помощью таких инструментов, как Adobe Edge Animate, или с помощью собственные функции вывода HTML в Adobe Flash Pro могут помочь вам создавать вещи для браузера.
РЕДАКТИРОВАТЬ: Ага, мне непонятно из вашего вопроса, но поскольку вы отметили это [flash-cc], похоже, вы уже используете документ HTML Canvas Adobe Flash Pro CC? В этом случае все вышеперечисленное остается в силе, но, кроме того, вы сможете использовать JS-библиотеку временной шкалы Flash Pro. Это комбинация CreateJS и некоторых дополнительных вещей, которые Adobe создала для имитации многих вариантов поведения временной шкалы Flash Player в браузере, который не имеет встроенной временной шкалы. Подробнее об этом я бы начал здесь: https://helpx.adobe.com/flash/using/creating-publishing-html5-canvas-document.html
person
Aaron Beall
schedule
06.03.2015
this.nex
? Что такоеexportRoot
? Вам нужно сделать работающий пример. - person epascarello   schedule 06.03.2015