Как теперь работать с клипами ?
Что-то давно я ничего не писал , блог зафлудили спамеры, тем не менее посещаемость растёт. Последнее обстоятельство заставило меня пристыдиться и написать что-нибудь.
Разницы между AS1 и AS2 невелика, некоторые фичи API плеера (например битмап фильтры и ExternalInterface) и эмуляция ООП среды на стадии компилляции. Это именно эмуляция, компиллятор собирает из исходников AS2 код AS1. Посмотрите на параметры публикации, выберите Flash Player 6 и убедитесь что среда предалагает публикацию на двух языках AS1 и AS2.
Многие флешеры говорят что они "кодят на AS2", но большинство из них не понимают что такое ООП. Они имеют какие-то представления об этом, но пишут программы приемущественно в кадрах клипов и считают "классы" лишним наворотом большого смысла в котором видят. ООП идеология - ключевой момент, отличающий AS1 от AS2.
Если пишите программы приемущественно в кадрах, значит кодите на AS1.
Если AS1 — ваш первый язык программирования. То перейти на ActionScript 3 вам будет сложнее. Т.К. в вашем мозге (как и ранее в моём) есть вредные извилины абстрактной модели MovieClip'ов.
Если вы работали на ActionScript 2 то всё немного проще, из-за принципов ООП, которым можно научиться в ActionScript 2.
Всех флешеров AS1, смутит новая модель работы с клипами.
Раньше приаттачить клип из библиотеки можно было так:
1. cоздали новую копию символа linkageId
2. создали новую переменную clipName в клипе clip.
Процесс довольно не привычный для программиста. Двумя строковыми литералами мы создаём переменную непонятного типа в объекте clip.
В Actions Script 3 логика больше соответсвует стандартам.
Что бы создать какой-то графический элемент и разместить его на сцене нужно:
1. Создать новый сомвол в библиотеке и нарисовать что-то в этом символе.
2. Ассоциировать созданный символ с классом:
Просто щёлкните правой кнопкой на символе в билиотеке, выберите Linkage. В открывшемся окне поставьте галочку Export for ActionScript.
В подсветившемся поле "Class" введите название класса.
3. Создать инстанцию класса и приаттачить куда нужно методом addChild(). (more...)
