Страница 2 из 2
Re: Хочу узнать ваше мнение по поводу пакетов и классов.
Добавлено: 15 май 2012, 14:30
Derial
Re: Хочу узнать ваше мнение по поводу пакетов и классов.
Добавлено: 15 май 2012, 20:57
Alazaur
А не могли бы вы показать на самом простом примере как связать два класса(например чтобы один зависел от другого или еще что-то) чтобы они работали "сообща"
Ок) Я не буду рассматривать сейчас практическую пользу, ибо где вам нужен отдельный класс, а где хватит массива или переменных вы будете решать сами, в зависимости нужд да и просто личных предпочтений и стиля. Например имеем основной класс программы Main и создадим еще класс героя Hero.
Класс Main:
Код: Выделить всё
package { import flash.display.MovieClip; import flash.display.Sprite; public class Main extends Sprite { private var hero:Hero; public function Main():void { hero = new Hero(100, 5, new MovieClip()); trace(hero.life); hero.lifeMin(10); trace(hero.life); } }}
В классе Main объявили переменную hero которая является экземпляром класса Hero (или можно еще по другому сказать имеет тип Hero). Затем в конструкторе класса ее определили, передав в конструктор данные.
Далее создаем класс Hero:
Код: Выделить всё
package { import flash.display.MovieClip; public class Hero { public var userdata:MovieClip; public var life:int; public var speed:int; public function Hero(_life:int = null, _speed:Number = null, _userdata:MovieClip = null):void { this.life = _life; this.speed = _speed; this.userdata = _userdata; } public function lifeMin(num:int = 0):void { this.life -= num; } } }
Как видим определяя переменную hero мы передали в конструктор данные 100, 5 и новый экземпляр MovieClip. Чем сходу определили 3 свойства у нового экземпляра, то есть у нашего героя hero - life (жизнь), speed (скорость) и userdata (некий MovieClip, который в последствии можем использовать для графического вывода на экран нашего героя). И теперь метод trace(hero.life) нам выведет на экран число 100. Обычно правда в ООП не принято делать свойства класса публичными, а писать интерфейс (во всяком случае в C++ по которому я и познавал ООП свойства класса публичными не делают)), но на сколько я знаю за мой небольшой опыт работы с флешем, в ActionScript функции прожорливые, поэтому делаю свойства публичными и обращаюсь к ним напрямую, но это может и не верный подход, по этому поводу вам лучше посоветоваться с более опытными флешерами.
И для завершения картины добавил в класс Hero метод lifeMin() который уменьшает жизнь life на переданное в метод число. И видим что в классе Main вызываем этот метод со значением 10. А далее снова trace(hero.life) который уже выведет 90.
Re: Хочу узнать ваше мнение по поводу пакетов и классов.
Добавлено: 15 май 2012, 21:54
Derial
Спасибо вам огромное:)
Теперь только классы

Re: Хочу узнать ваше мнение по поводу пакетов и классов.
Добавлено: 16 май 2012, 01:40
sanych_dv
Пара мыслей:
В новом классе очень желательно писать его наследование:
В обычной практике все же свойства лучше делать приватными, а получать (устанавливать) значения через геттеры / сеттеры.
Ключевое слово this излишне, функция уже определена внутри класса. Имеет смысл использовать его в качестве ссылки на глобальный объект, если функция определена вне классов и объектов. Или в классе, если, к примеру, необходимо установить переменную из пары "ключ-значение".
Re: Хочу узнать ваше мнение по поводу пакетов и классов.
Добавлено: 16 май 2012, 06:43
Derial
sanych_dv писал(а):Пара мыслей:
А класс именно от MovieClip наследовать или лучше от Sprite
Re: Хочу узнать ваше мнение по поводу пакетов и классов.
Добавлено: 16 май 2012, 07:58
sanych_dv
Sprite - тот же MovieClip, но без возможности работать с таймлайном. Собственно, MovieClip частично наследуется от Sprite и является более "тюнингованным". )
Ищите в свойствах и методах базового класса, который вы будете расширять, те, которые вам будут необходимы.
Re: Хочу узнать ваше мнение по поводу пакетов и классов.
Добавлено: 16 май 2012, 08:14
Alazaur
Derial, ага вот
sanych_dv опытный флешер, плохого не посоветует. Я пока еще всех тонкостей не знаю

Re: Хочу узнать ваше мнение по поводу пакетов и классов.
Добавлено: 16 май 2012, 14:29
Derial
Учту

Re: Хочу узнать ваше мнение по поводу пакетов и классов.
Добавлено: 16 май 2012, 15:12
Derial
И вот еще такой вопрос по поводу графики: как лучше сделать в Flash IDE или программно прописывать каждое событие(например в IDE мы создадим кнопку и на кадре который "активируется" при наведении на кнопку поменяем цвет кнопки(коддинг совершенно не нужен) или сделать все тоже только прописав каждое действие в программе(нужен коддинг)?