После многих лет использования Flash 8 я перехожу на CS3 на работе. Я знаю, что мне придется изучить AS 3.0, так что есть ли у кого-нибудь хорошие ссылки или резюме основных / наиболее заметных изменений? Кроме того, есть ли какие-нибудь советы / рекомендации по использованию флэш-памяти? Проведя несколько минут в CS3, я заметил, что вы не можете напрямую прикрепить ActionScript к кнопке, что для меня в новинку. Есть ли другие подобные ловушки, за которыми нужно следить?
Переход с Flash 8 на CS3
Ответы (3)
Я полностью переключился примерно 3 месяца назад, вот некоторые вещи, которые помогли мне довольно быстро нарастить:
1) Делайте все в файлах класса
Многие учебники по AS3 имеют дело только с кодом, вставленным на временную шкалу (что я терпеть не могу, потому что теперь вам нужно искать, какой импорт вам нужен), но подходит для быстрых крошечных вещей. В конечном итоге это лучше работает в первую очередь с файлами классов. Изучение того, как работают классы, открыло для меня огромные двери, это было то же чувство / опыт, который я испытал, когда впервые открыл для себя функции в AS2 :)
2) Храните графику в библиотеке и вне рабочего пространства
Например, у вас есть файл jpg, gif, png, который вы только что импортировали в свою библиотеку. Сделал movieClip и присвоил ему имя класса (MyButton
). Теперь приведенный ниже код поместит изображение в рабочую область за вас:
var myButton:MovieClip = new MyButton();
myButton.x = 6;
myButton.y = 22;
myButton.buttonMode = true;
addChild(myButton);
3) Используйте новый код кнопки в AS3
Всем нам, новообращенным, приходилось мучительно бороться с этим, но теперь это пустяк :)
myButton.addEventListener(MouseEvent.MOUSE_UP, clickThis);
function clickThis(event:MouseEvent):void
{
navigateToURL(new URLRequest("form.html"), "_self");
//navigateToURL(request, '_self');
}
4) Убедитесь, что вы удалили прослушиватели событий после использования
Мне потребовалось немного времени, чтобы обернуть меня вокруг этого ... удалить их, зачем? О, они все еще работают в фоновом режиме, и когда я снова слушаю, я получаю всевозможные мутировавшие ошибки.
private function volDown(e:MouseEvent):void
{
masker.width = volControl.mouseX;
userVolume = (masker.width / 100) * 1;
volControl.addEventListener(MouseEvent.MOUSE_MOVE, volMove);
}
private function volUp(e:MouseEvent):void
{
lastVolPoint = masker.width;
setVolume(userVolume);
e.updateAfterEvent();
volControl.removeEventListener(MouseEvent.MOUSE_MOVE, volMove);
}
5) Не забывайте проходить События
Я не программист по профессии, и это вызвало столько горя, я рад, что покончил с этой родовой болью:
myButton.addEventListener(MouseEvent.MOUSE_UP, clickThis);
Поскольку функция clickThis запускается через событие, вы должны передать в нее: event:MouseEvent
следующим образом:
function clickThis(event:MouseEvent):void
Потому что приведенный ниже код вызовет ужасную ошибку AS3 «Доступ к неопределенному свойству», с которой всегда будут сталкиваться новички в AS3.
function clickThis():void
6) Читайте и задавайте вопросы на StackOverflow ... много!
кстати, я все еще новичок и изначально дизайнер, а затем разработчик AS2, я до сих пор не знаю, почему мы добавили: void за именем функции ... если у нас есть похожие фоны кодирования, я надеюсь, что все это поможет :)
Я предлагаю вам посетить страницу миграции языка ActionScript в сети разработчиков Adobe. Он предлагает довольно много статей о ключевых изменениях в ActionScript 3.
Чтобы ответить на вашу проблему с действиями на кнопке, это больше не работает (и уже с ActionScript 2 это был не лучший способ сделать это). AS3 требует, чтобы код был централизован на временной шкале. Итак, чтобы дать кнопке какое-либо действие, вам нужно дать ей имя экземпляра и добавить прослушиватель событий для события CLICK, например:
function doSomething ( event:MouseEvent ):void
{
trace( "test" );
}
myButton.addEventListener( MouseEvent.CLICK, doSomething );
Получите IDE для ActionScript 3. Например, Flash Builder, FlashDevlop или FDT. Это заставит вас учиться очень быстро.