par Victor Costiuc Il y a 13 années
416
Plus de détails
Введение в язык ActionScript 3
ActionScript 3 – это динамический, объектно-ориентированный язык сценариев, являющийся (почти) типо-безопасным (type-safe). ActionScript 3 основан на спецификации ECMAScript 3 (ECMA-262). Также, некоторые его возможности идут в ногу со спецификацией ECMAScript 4. Я думаю, что легче всего объяснить ActionScript 3 тем, кто с ним совершенно незнаком, следующим образом: ActionScript выглядит как смесь языков JavaScript и Java, плюс его собственные яркие черты. На самом деле, JavaScript как язык также основан на спецификации ECMAScript, так что для него это естественно – иметь общее с ActionScript.
Как я сказал ранее, Flash Player может работать с двумя языками: ActionScript 2 и ActionScript 3. Внутри он использует для этих двух языков две разные виртуальные машины (ActionScript 3 и виртуальная машина AVM2 появились во Flash Player 9). ActionScript 3 состоит из основного языка (ключевые слова, типы данных, и т.д.) и прикладного программного интерфейса Flash Player API (этот API дает разработчикам доступ ко всем возможностям Flash Player через API дисплея, 3D API, API рисования, анимации, и т.д.)
Пример:
var myLabel = new Label();
myLabel.text = "Привет, мир!";
myLabel.setStyle("fontSize", "14");
myLabel.setStyle("color", "red");
myLabel.x = 100;
myLabel.y = 50;
addChild(myLabel);
Начнём с простого PHP-класса, чтобы увидеть отличия в синтаксисе (не забывайте, что я использую PHP 5.3):
1: namespace org\corlan {
2:
3: class SimpleClass {
4:
5: public $public = 'Public';
6: protected $protected = 'Protected';
7: private $private = 'Private';
8:
9: function SimpleClass() {
10:
11: }
12: // Переопределяем родительский метод
13: function displayVar()
14: {
15:
16: }
17: }
18: }
19:
20: //Используем класс
21: require_once('flassFile.php');
22: $obj = new org\corlan\SimpleClass();
23: $obj->displayVar();
1: static const HELLO:String = "Типа";
2: var myString:String = HELLO + " привет!";
1: var anInteger:int = 12;
2: var isTrue:Boolean = true;
3: var aString:String = "моя строка";
4: //В AS3 нельзя использовать одинарные кавычки при объявлении строки
В AS3 вы можете сделать то же самое (в strict-режиме) только, если объявляете переменную нетипизированной, используя тип “*”:
1: var myVar:int = 12;
2: //это вызовет ошибку, и приложение не будет скомпилировано
3: myVar = "это строка";
4:
5: //объявив переменную как нетипизированную, вы можете изменять тип при каждом присвоении
6: var myVar2:* = 12;
7: myVar2 = "теперь это строка";
MXML – это декларативный язык, основанный на XML. В приложении Flex язык MXML используется для быстрой разметки структуры и внешнего вида. Во Flex все, что можно сделать с MXML, можно также сделать и с ActionScript 3, но обратное не верно.
Но если в ActionScript 3 можно сделать все то же, что и в MXML, то зачем тогда нужен MXML? Потому, что обычно намного проще читать код интерфейса пользователя, описанный с помощью XML-языка, чем описанный с помощью языка императивного, такого, как AS3. Так для описания интерфейса используется меньше кода. Кроме того, намного проще создавать инструменты для декларативных языков, чем для императивных. Вот приложение типа “Hello World!” на MXML:
Пример:
<Label text="Hello, world!" fontSize="14" color="red" x="100" y="50"/>
Типы данных, переменные, константы
В PHP есть такие типы данных: Булевы (Boolean), целые числа, числа с плавающей точкой, Строки (String), Массивы (Array), Объекты (Object), Ресурсы (Resources) и NULL.
1: //константы
2: define("CONSTANT", "Типа");
3: $myString = CONSTANT . ‘ привет!’;
1: //в PHP
2: $space = " ";
3: $a = "this" . $space . "is!";
Типы данных верхнего уровня: Boolean, int, uint, Number (то же, что и число с плавающей точкой в PHP), String, Null (содержит только одно значение: null), void (имеет только одно значение: undefined)
Сложные типы данных: Object, Array, Vector (начиная с Flash Player 10), Dictionary, Bitmap, ByteArray, Date, XML, XMLList, Function, Error, RegExp.