Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0 > Статьи

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.09.2006, 11:43
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 1  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию ActionScript 3 Tips and Tricks

senocular из Сан-Франциско опубликовал 100 советов по ActionScript 3
Для начинающего работать в AS3 эти советы бесценны. Здесь перевод на русский:
  1. Изменение частоты кадров flash-ролика
  2. Методы класса теперь связаны с областью видимости класса
  3. Объект Graphics и методы для рисования
  4. Новые типы переменных
  5. Отображаемые объекты (Display Objects)
  6. Новая директива Import
  7. Приведение типов и оператор as
  8. Уникальность переменных в классах
  9. Новое поведение MouseMove
  10. Ключевое слово delete и члены класса
  11. Класс Dictionary
  12. Метки
  13. Событие MOUSE_LEAVE или как узнать что мышка за пределами SWF
  14. Класс SimpleButton
  15. Немного о синтаксисе в Array
  16. Пакеты в AS3
  17. Вспомогательные классы
  18. Права доступа
  19. Абстрактные классы
  20. Ключевое слово override
  21. Использование прототипов (prototype)
  22. Регулярные выражения RegExp
  23. Подход к сортировке глубин
  24. Полное Копирование объекта
  25. Одинаковые имена свойств
  26. EventDispatcher
  27. События и типы событий
  28. Запись XML в тексте скрипта
  29. Определение имени класса
  30. Вызов super()
  31. Определение метки текущего фрейма (Frame Label)
  32. Несколько аргументов в trace()
  33. Вызов обработчика события без события
  34. URLRequest вместо строки URL
  35. XML или XMLDocument
  36. Загрузка текста и XML с использованием URLLoader
  37. Оператор is вместо instanceof
  38. Timelines как класс
  39. Использование RegExp для проверки email
  40. Событие Render
  41. Оператор @ для работы с атрибутами XML
  42. Распространение событий
  43. Получение спектра звука
  44. Преобразование Number() больше не поддерживает восьмеричную систему
  45. Сборщик мусора
  46. Мягкие ссылки
  47. Использование картинок из библиотеки (library)
  48. Изменения в typeof
  49. getBounds() и getRect()
  50. Разница между for..in и for each..in
  51. Значения по умолчанию для параметров функции
  52. Неопределенное количество аргументов при вызове функции
  53. arguments
  54. Пространство имен (namespaces)
  55. Оператор :: для уточнения пространства имен
  56. Динамичность класса не наследуется
  57. Создание события mouseWithin
  58. Ключевое слово final
  59. MXMLC: SWF Metadata Tag
  60. Класс Proxy
  61. Оператор in
  62. Методы getProperty и setProperty класса Proxy
  63. instance name мувиклипа на сцене
  64. XML и XMLList
  65. Константы
  66. Аналог duplicateMovieClip
  67. Метод callProperty класса Proxy
  68. Копирование динамической графики
  69. TextField.appendText()
  70. Директива include
  71. Двойное объявление переменной
  72. mouseEnabled и блокирование событий
  73. Свойство mouseChildren
  74. Различия между rollOver/rollOut и mouseOver/mouseOut
  75. DisplayObjectContainer contains()
  76. Освобождение слушателей событий при удалении с экрана
  77. Определение добавления или удаления со Stage
  78. Фазы событий
  79. Определение фазы события
  80. Предотвращение распространения события
  81. Глобальные события
  82. Реализация onReleaseOutside в AS3
  83. Document Class
  84. Доступ к stage и root
  85. use namespace
  86. Используйте ColorTransform вместо класса Color
  87. Класс Error, ошибки выполнения
  88. Ошибки: try..catch..finally
  89. Перехват асинхронных ошибок
  90. Операторы (.) и (..) для XML
  91. Array.indexOf и Array.lastIndexOf
  92. "asfunction:" теперь "event:"
  93. Proxy: методы перечисления
  94. Перехват событий мышки и mouseEnabled
  95. Strict Mode
  96. System.totalMemory
  97. Закрытие сетевых соединений
  98. Класс Timer
  99. Взаимодействие между AVM2 и AVM1
  100. Класс ByteArray
Скачать
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.


Последний раз редактировалось MerlinTwi; 09.11.2006 в 23:44.
Старый 27.09.2006, 12:02
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 2  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию Изменение частоты кадров flash-ролика

В ActionScript 3, можно динамически менять частоту кадров (frame rate) ролика используя класс Stage.
Класс Stage (flash.display.Stage) связан со сценой главного ролика и имеет свойство frameRate, которое может принимать значения от 0.01 до 1000, и определяет частоту кадров, с которой Flash плеер проигрывает ролик. Изменять это значение можно на лету.
Код:
// изменить частоту кадров на 12 fps:
stage.frameRate = 12;
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 27.09.2006, 12:22
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 3  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию Методы класса теперь связаны с областью видимости класса

ActionScript 3 полностью базируется на классах. Создавая классы, вы создаете переменные и функции (методы) которые связаны с экземпляром класса. В отличие от ActionScript 2 методы в ActionScript 3 сохраняют область видимости их класса, даже если вызываются из другого объекта, или через Function.call и Function.apply. Например:
Код:
 package {
    import flash.display.Sprite;
    
    public class ClassScope extends Sprite {
        
        public function ClassScope() {      
            traceThis(); // "Class Instance"
            
            var obj:Object = new Object();
            obj.traceThis = traceThis;
            obj.traceThis(); // "Class Instance"
            
            traceThis.call(new Sprite()); // "Class Instance"
        }

        public override function toString():String {
            return "Class Instance";
        }
        
        public function traceThis():void {
            trace(this);
        }
    }
}
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 27.09.2006, 12:42
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 4  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию Объект Graphics и методы для рисования

Как и в ActionScript 1,2 в ActionScript 3 есть методы для динамического рисования в отображаемых объектах (movie clips, sprites, и т.п.), которые имеют свойство graphics (flash.display.Graphics). Свойство graphics выступает в роли специального слоя для рисования, который расположен под всеми дочерним клипами. Так же в ActionScript 3 добавлены новые методы для рисования прямоугольников (в том числе и со скругленными углами), окружностей и эллипсов:
  • drawCircle(x:Number, y:Number, radius:Number):void
  • drawEllipse(x:Number, y:Number, width:Number, height:Number):void
  • drawRect(x:Number, y:Number, width:Number, height:Number):void
  • drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number):void
Пример:
Код:
// Нарисовать синий прямоугольник со скругленными углами:
var square:Sprite = new Sprite();
square.graphics.beginFill(0xFF);
square.graphics.drawRoundRect(0, 0, 100, 50, 10, 10);
square.graphics.endFill();
addChild(square);
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 27.09.2006, 22:02
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 5  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию 8. Уникальность переменных в классах

В ActionScript 2 переменные со значениями объявленные в теле класса сохранялись в прототипе класса. Из-за этого возникали проблемы с переменными, которые являются ссылками на объекты (например массивы Array):
Код:
class myClass{
   public var list:Array = [1,2,3];
}
var a = new myClass();
var b = new myClass();
trace(a.list === b.list); // true
Здесь a.list и b.list фактически ссылаются на один и тот же массив.
В ActionScript 3 этой проблемы нет, такие переменные будут уникальны.
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 27.09.2006, 22:30
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 6  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию Новое поведение MouseMove

В ActionScript 2 событие MouseMove срабатывало глобально, неважно над каким клипом находилась мышка, любой listener от Mouse или любой мувиклип получали событие о перемещении мышки.
В ActionScript 3 для того чтобы получать события от мышки, нужно у интерактивного клипа (InteractiveObject такие как Sprites, MovieClips, Stage) добавить слушателя событий мышки (Listener), но события будут приходить только тогда, когда мышка находится над этим клипом. Для того чтобы получать события мышки в любом месте ролика, нужно добавить Listener к Stage.
Код:
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 28.09.2006, 13:03
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 8  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию 14. Класс SimpleButton

В ActionScript 3 появился новый класс SimpleButton (flash.display.SimpleButton). Теперь можно динамически с помощью ActionScript создавать кнопки (Button).
Код:
var myButton:SimpleButton = new SimpleButton();
Класс SimpleButton имеет 4 основных свойства, которые управляют возможными состояниями кнопки: upstate (кнопка не нажата), overState (мышка над кнопкой), downstate (кнопка нажата), и hitAreaState (область реагирования на мышку). Необходимо создать визуальные объекты для этих состояний и присвоить их к соответствующим свойствам.
Код:
 myButton.upState = mySprite1;
myButton.overState = mySprite2;
myButton.downState = mySprite3;
myButton.hitAreaState = mySprite4;
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 28.09.2006, 13:11
Огион вне форума Посмотреть профиль Отправить личное сообщение для Огион Найти все сообщения от Огион
  № 9  
Ответить с цитированием
Огион

Регистрация: Aug 2004
Сообщений: 16
11. Класс Dictionary
12. Метки


Последний раз редактировалось Огион; 28.09.2006 в 16:48.
Старый 28.09.2006, 13:20
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 10  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию 17. Вспомогательные классы

Один класс описывается в одном .as файле, так было в ActionScript 2 так остается и в ActionScript 3, но теперь есть возможность включать вспомогательные классы в тот же .as файл в дополнение к основному классу.
Вспомогательные классы описываются после блока package и видны только основному классу (или функции) в блоке package, или другим вспомогательным классам, описанным в этом же файле.
Код:
package {
    class MyClass {
        function MyClass() {
            var helper:MyHelper = new MyHelper();
        }
    }
}
class MyHelper {
    function MyHelper() {
        var helper:HelpersHelper = new HelpersHelper();
    }
}
class HelpersHelper {
    function HelpersHelper () {
    }
}
Запомните, что только один класс может быть описан в блоке package. Вспомогательные классы описываются в этом же файле, но после package и могут использоваться только основным классом.
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:48.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.