Большая часть кода JavaScript является также синтаксически действительным кодом ActionScript 3.0. Однако существуют некоторые исключения, который приводит меня к моему вопросу:
Который создает/показывает в JavaScript, синтаксически недопустимы в ActionScript 3.0? Обеспечьте конкретные примеры кода JavaScript (основной код JavaScript без использования API DOM), который НЕ является действительным кодом ActionScript 3.0.
Вы можете объявить переменную в JS без использования var
утверждение. В ActionScript 3 оператор var
всегда требуется .
Следующее является допустимым JS, но вызовет ошибку компилятора в AS3:
var foo = 6;
bar = "bar";
Вы также можете повторно объявить переменную в JS с одной областью видимости без ошибки:
var x = 5;
var x;
В AS3 вы можете только объявить переменную один раз для каждого прицела.
ActionScript 1 намного ближе к Javascript. ActionScript 3 следует ныне несуществующей спецификации ECMAScript 4 .
Очевидными из них являются ключевые слова ECMAScript 4, которые не были зарезервированными словами в будущем в ECMAScript 262 3rd Edition:
// oops!
var let = "Hello";
var yield = "World";
Во-первых, метод eval() не будет работать.
Кроме того, конструктор RegExp() не работает, по крайней мере, со строками. Другими словами, вы не можете сказать:
var rex:RegExp = new RegExp("[a-zA-Z0-9]+","gim");
Вы должны написать это так:
var rex:RegExp = new RegExp(/[a-zA-Z0-9]+/gim);
Другими словами, вы не можете сделать подстановку переменных для частей строкового аргумента.
Ну, вы не можете использовать alert (и некоторые другие глобальные функции JS), onmouseover, onload и т.д. (обработчики событий JS), все, что связано с формой или браузером (как вы предлагаете). Вы не можете копировать и вставлять JS код в AS3 класс, потому что AS3 сильно типизирован и вы можете получить ошибки компилятора (более того, в JS у вас вообще нет классов).
AS3 является более сильным типизированным и традиционно ОО языком, чем javascript (и AS2), поэтому все манипуляции с прототипами исключены. Это, вероятно, самая большая разница, IMO, поскольку это означает, что что-то вроде jQuery не может действительно работать в AS3.
Как было отмечено, локальные переменные должны быть объявлены с помощью var
. Кроме того, нетипизированные переменные и повторно объявленные переменные выдают предупреждения компилятора.
Как правило, больше примеров обратного (AS3 код не валиден в javascript).