Как узнать, является ли ActionScript 1, Actionscript 2 или Actionscript 3?

У меня нет конкретного примера кода, но есть ли общий способ угадать, какой версией Actionscript является фрагмент кода: 1, 2 или 3?

Я где-то читал, что если это код на временной шкале, он считается ActionScript 1.

3 ответа

Обновление: мой опыт работы с AS1/2 ограничен, и это основано на том, что я видел на форумах AS. Из комментариев видно, что второй и третий методы обработки событий действительны как в AS1, так и в AS2.

Синтаксис обработки событий различен:

ActionScript 3

addEventListener(MouseEvent.MOUSE_UP, handleClick);
private function handleClick(e:MouseEvent):void
{
  //Just do it
}

ActionScript 2

onRelease = function():Void{ //it's not void - it's Void
  //do something
}

ActionScript 1

on(release){
  //do something
}

Эта страница может оказаться полезной: переход с AS2 на AS3

AS3 способ добавления новых детей new с последующим addChild

var s:Sprite = new Sprite();
var tf:TextField = new TextField();
this.addChild(s);
s.addChild(tf);

Это было createMovieClip а также createTextField методы раньше - не уверен насчет точной версии, хотя.

_root.createTextField("mytext",1,100,100,300,100);
//that is name, depth, x, y, width, height
mytext.multiline = true;
mytext.wordWrap = true;
mytext.border = false;

Ранее, если у вас был name свойство ребенка, вы можете получить доступ к ребенку от родителя, используя parent.childName даже если родительский класс не имеет свойства с именем childName, С AS3 это возможно, только если у родительского класса есть свойство с именем childName (соответствующего типа), и вы присвоили ссылку на него дочернему элементу (или вы создали это свойство в динамическом классе MovieClip). Есть getChildByName() - но он вернет первого потомка с заданным именем (и возможно иметь повторяющиеся имена в списке потомков).

Между AS3 и AS1/2 есть много различий, и в большинстве случаев вы увидите это сразу (ищите addChild и addEventListener в AS3). Различия между AS1 и AS2, однако, куда менее очевидны, но, вероятно, наиболее релевантными в языковом отношении - это введение концепции "класса" вместе с несколькими утверждениями и ключевыми словами для разработки ООП (class, public, private и т. Д.)).

РЕДАКТИРОВАТЬ: смотри, википедия объясняет это гораздо лучше:

2003–2006: ActionScript 2.0 Следующая крупная редакция языка, ActionScript 2.0, была представлена ​​в сентябре 2003 года с выпуском Flash MX 2004 и соответствующего проигрывателя Flash Player 7. В ответ на потребность пользователей в языке, лучше подготовленном для больших и в более сложных приложениях в ActionScript 2.0 реализована проверка типов во время компиляции и синтаксис на основе классов, например ключевые слова class и extends. (Хотя это позволило использовать более структурированный подход к объектно-ориентированному программированию, код все равно будет скомпилирован в байт-код ActionScript 1.0, что позволит использовать его и в предыдущем Flash Player 6. Другими словами, синтаксис наследования на основе классов был слой поверх существующей системы на основе прототипов.) С помощью ActionScript 2.0 разработчики могут ограничивать переменные определенным типом, добавляя аннотацию типа, чтобы ошибки несоответствия типов могли быть обнаружены во время компиляции. ActionScript 2.0 также ввел синтаксис наследования на основе классов, чтобы разработчики могли создавать классы и интерфейсы, почти как в языках на основе классов, таких как Java и C++. Эта версия частично соответствовала проекту спецификации четвертого издания ECMAScript.

http://en.wikipedia.org/wiki/ActionScript

Ну, это должен быть не только ActionScript 1 с кодом на временной шкале. Но простой и быстрый способ проверить, в какую версию вы кодируете, - просто щелкнуть рамку (пустую или нет) и нажать клавишу F9. Он скажет с левой стороны, что это за версия (я уверен...):)

Другие вопросы по тегам