HTML5 javascript-actionscript пауза 5 секунд

Я делаю рекламные баннеры в AS3. Теперь я хочу попробовать преобразовать их в HTML5 Canvas. Моя проблема в скриптах. Я не знаю Java, поэтому я надеюсь, что кто-то здесь может помочь.

AS3: Вставляю этот скрипт на кадр и анимация останавливается на 5 секунд - а потом продолжаю играть.

sleep(5);
function sleep(sec) {
stop();
setTimeout(this.gotoAndPlay, sec*1000, this.currentFrame + 1);
}

Как преобразовать это в Javascript в моем холсте HTML5? Если возможно...


person user3350237    schedule 25.02.2014    source источник
comment
Вам не нужна Java, JavaScript и Java так же похожи друг на друга, как кошка на гусеницу. 2 разных языка. Один из них — классический объектно-ориентированный язык, другой — фактически функциональный язык.   -  person Elias Van Ootegem    schedule 25.02.2014
comment
По сути, в JS можно было бы написать: stop(); setTimeout(playFuncReference, 5000);. ссылка this привязана ad-hoc, если функция вызывается в глобальном пространстве имен, this будет ссылаться на глобальный объект, если это метод, this будет указывать на объект, для которого функция метод.   -  person Elias Van Ootegem    schedule 25.02.2014


Ответы (1)


Javascript очень похож на actionscript, поэтому должно работать что-то вроде этого:

sleep(5);
function sleep(sec) {
       var self = this;
       setTimeout( function() {
           stop();
           self.gotoAndPlay(self.currentFrame + 1);
       }, sec*1000);
   );
}

Имейте в виду, что gotoAndPlay должен быть объявлен как часть родительского объекта, содержащего функцию сна, а остановка должна быть объявлена ​​в той же части, что и функция сна, чтобы она была доступна.

person Goran.it    schedule 25.02.2014
comment
this, вероятно, укажет здесь на глобальный объект... Конечно, и AS3, и JS начинаются со спецификаций ECMA, но они далеко не идентичны. - person Elias Van Ootegem; 25.02.2014
comment
stackoverflow.com/questions/2268276/ - person Goran.it; 25.02.2014
comment
Да, опять же: оба ECMA, но почти идентичны? Абсолютно нет: безопасность типов, классическая поддержка объектно-ориентированного программирования, векторные типы, различные стандартные библиотеки... просто посмотрите на код, var foo = {foo: "bar"}; против var foo:Object = {foo: "bar"};, import, package... черт возьми: сильная, статическая типизация или как ведет себя this. Я бы сказал, что это большие различия - person Elias Van Ootegem; 25.02.2014
comment
Большой разницей будет, например, эта функция, написанная на питоне. Если вы сравните версии actionscript и javascript в этом случае, вы скажете, что они сильно отличаются или? - person Goran.it; 25.02.2014
comment
Да я бы. Python просто выглядит иначе, потому что не использует фигурные скобки. Сравните Java с C, и с точки зрения синтаксиса вы бы сказали, что они очень похожи, если бы вы не знали лучше. Это не делает языки похожими. Даже не близко. В python: a = "a string"\na = 123\n совершенно правильно, как и в JS. В AS3 var a:String = "a string"\na = 123 нет. - person Elias Van Ootegem; 25.02.2014
comment
Я не говорил об обозначениях объектов/переменных и т. д. Я просто говорил то, что было сказано так много раз снова и снова, что actionscript и javascript похожи... проведите небольшое исследование Google по этому поводу. Я не буду больше обсуждать это, так как это не место для этого. - person Goran.it; 25.02.2014
comment
Последний пример: Python -> def myFunc (a, b): return (a + b)*myFunc.factor, затем myFunc.factor = 2 работает нормально, как и в JS function myFunc(a, b) { return (a + b)*myFunc.factor;} myFunc.factor = 2; Использование функций в качестве объектов и присвоение свойств не всегда работает в AS3. Опять же: есть сходства, но они не являются, как вы сказали почти идентичными - person Elias Van Ootegem; 25.02.2014
comment
Другими словами, вы комментируете и навязываете свои утверждения только из-за этого чуть ли не в моем ответе? - person Goran.it; 25.02.2014
comment
Я начал с того, что они далеко не идентичны. Вы ответили ссылкой. Я проверил эту ссылку и нашел свой первоначальный комментарий, подкрепленный ответами, данными там. Вы назвали их почти идентичными, я не согласился и просто изложил свои причины, ответ на ваши контраргументы является частью поддержки моих утверждений. Вы имеете право на свои взгляды, и если они отличаются от моих, я из тех людей, которым нравится знать почему, чтобы я мог адаптировать свои взгляды. - person Elias Van Ootegem; 25.02.2014