|
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
Цитата:
Почему писать код в кадрах - это неправильно. Просто почему. Мне интересно знать, так как писать в кадрах я привык и это для меня кажется удобным. На крайняк могу сделать парочку простых классов. |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Цитата:
Можно и без, но это не ооп. Но я запомню Ваше пожелания и буду показывать так, как неправильно, но быстрее. Цитата:
|
|
|||||
Регистрация: Jan 2013
Сообщений: 322
|
Цитата:
выучить ооп - в крайнем случае полгода, учиться программировать в целом - несколько лет. Цитата:
|
|
|||||
Цитата:
private var _keyboardFlags: Object = {}; ... ... _keyboardFlags.LEFT ... ... _keyboardFlags.RIGHT ... ... _keyboardFlags.STOP ... ... Если уж так приспичило ООПрограммировать, то делайте все правильно. Пример 1: Геттер возвращает копию _keyboardFlags, тем самым не даем возможности изменить извне значения флагов. [Encapsulation completed ] public class KeyBoardController { private var _keyboardFlags:Object = {}; public function get keyboardFlags( ):Object { var hash:Object = {}; for (var key:String in _keyboardFlags) { hash[ key ] = _keyboardFlags[ key ]; } return hash; } } public class KeyBoardController { private var _keyboardFlags:Object = {}; public function getKeyboardFlagByName( name:String ):Object { return _keyboardFlags[ name ]; } } public class KeyBoardController { private var _keyboardFlags:Object = {}; public function get flagLEFT( ):Object { return _keyboardFlags[ "LEFT" ]; } public function get flagRIGHT( ):Object { return _keyboardFlags[ "RIGHT" ]; } public function get flagSTOP( ):Object { return _keyboardFlags[ "STOP" ]; } } public class KeyBoardController { private var _flagLEFT:Object; private var _flagRIGHT:Object; private var _flagSTOP:Object; public function get flagLEFT( ):Object { return _flagLEFT; } public function get flagRIGHT( ):Object { return _flagRIGHT; } public function get flagSTOP( ):Object { return _flagSTOP; } } |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Сорри, я не понял с первого раза о чем Вы.
Да Вы правы! Getter на _keyboardFlags в данной ситуации действительно не нужен. И я даже больше скажу, своё мнение я пытался обосновать мыслями, которые феерически, как фейверк, промчались по моему мозгу и точно так же растворились в потоке информации полученной из гугла. И после этого наступило настоящие просветление в отношении set-get. Спасибо! До этого я не в полной картине понимал и аксессоры и даже типы и даже само проектирование. Добавлено через 30 минут Но вот небольшой вопрос - SimpleButton от adobe имеет public function get upState():DisplayObject public function set upState(value:DisplayObject):void так DO это не позволит. Но! Ведь я могу взять у кнопки этот стайт и поменять его координаты, ширину или даже перерисовать прикастовав его к Shape, это ведь тоже не защищает объект. И если следовать этому пути, то на DO вообще нельзя делать set-get... Что Вы по этому поводу можете сказать? |
|
|||||
Во первых, кнопке (экземпляру SimpleButton) плевать чем Вы ее напичкаете, главное, чтобы это были экранные объекты. А будут они прямоугольные, красные, большие или даже пустые внутри - дело Ваше.
Во вторых, как кнопка сможет сходу поменять разместить в себе Ваш апСтейт-объект, если бы у нее было просто публичное свойство upState без аксессоров? Можно, конечно прикрутить ей некий публичный метод refresh() и дергать его самостоятельно, после изменения значения одного из состояний, но зачем тогда аксессоры? Короче, предположу, что: |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
То есть, Вы считаете adobe таким примитивным, что у них состояния в сеттере меняются?)
Повторю вопрос в догонку - по Вашему мнению на DO вообще не нужно делать аксессоры, если конечно, что-то да не меняется, как в примере выше? Добавлено через 1 минуту И не подумайте, что я пытаюсь придраться, я уточняю, так как Вы обосновали свое мнение и я вижу в нем долю истины. |
|
|||||
Цитата:
Например кнопка находится в состоянии "UP" и Вы заганяете новое значение для upState. Вы считаете adobe таким примитивным, что на enterFrame-обработчике висит проверка "а не изменилось ли какое нибудь состояние"? По моему им хватило ума из сеттера инициировать замену. А как она производится мне уже не так интересно. В своем же примере я показал только общую идею, а не конкретную реализацию. Цитата:
private var _param:int; public function get param():int { return _param; } public function set param(value:int):void { _param = value; } Цитата:
Ну что Вы, придирайтесь на здоровье! Но только если по существу. Ато плодотворная дискуссия (в которлй между прочим может родится истина ) превратится в банальный срач. |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Думал, что можно ответить, но пришел к обычному - Спасибо!
|
Часовой пояс GMT +4, время: 16:20. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|