← All posts tagged Flash

Я кстати очень долгое время, когда видел в juick'е людей упоминающих World of Tanks, думал что это та самая игра от Alternativa, =) Но потом я увидел упоминания игры в Google Plus, и понял – нет в игру на флэше, так много людей не стало бы играть =)

Пишем игру с партнером, нужно сделать редактор карт, ну думаю наклепаю в Флексе что нибудь за день – якорь мне в жопу, я полчаса убил, на вопрос – почему UIComponent.state и ComponentSkin.state свойства не синхронизированны…

Есть класс, с метадатой:
/**
* Menu state, an instance of <code>App</code> will display available for edition maps, or allow user to create own.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.6
* @productversion Flex 4.5
*/
[SkinState("menu")]
/**
* Editor state, an instance of <code>App</code> will display map editor.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.6
* @productversion Flex 4.5
*/
[SkinState("editor")]

Есть скин с нодами:
<s:State name="menu" />
<s:State name="editor" />

Но, при этом в меня кидаются ошибкой:
ArgumentError: Undefined state 'menu'.
at mx.core::UIComponent/getState()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:10596]
at mx.core::UIComponent/findCommonBaseState()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:10616]
at mx.core::UIComponent/commitCurrentState()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:10370]
at mx.core::UIComponent/setCurrentState()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:10312]
at mx.core::UIComponent/set currentState()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:6415]
at eu.kiichigo.dd.editor.mvcs.views.mediators::AppMediator/onRegister()[/Users/Nirth/Documents/Projects/dragon-defence/dragon-defence-editor-commons/src/eu/kiichigo/dd/editor/mvcs/views/mediators/AppMediator.as:58]

Кто нибудь сталкивался?

Вообще, в плюсах ActionScript, является его скорость разработки, гибридный OOP/FP язык, местами лаконичный, местами зачем то нагородили ключевых слов. Но разрабатывать приложения быстро. Быстро в десятки человеко-часов раз нежели писать на Java под Android.
Но есть огромный минус, на этих платформах, прилжения принято не закрывать. А Adobe все никак не напишут человеческую работу с мусором. Хоть Object Pulling используй.

Смотрю на Flash Ripper люди писаются кипятком, если вакансия на Flash разработчкика — не Game Dev. Но если подумать серьезно — Приложения лучше писать на Qt, Java, HTML5. Flash и его фишки, все таки больше для казуальных one-timer игр, в которые поиграют пару дней и забьют*.

*Или в случае "наркоманов" будут играть каждый день, и забьют на жизнь, вроде FarmVille.

Если вы работаете консультантом, иногда вам могут обещать неприличные гонорары, за то что вы поработаете чуть чуть на AS2. Если вы сидите на виндоус, то вы запускаете FlashDevelop.
На маках же есть — AS2 emacs Mode — blog.pettomato.com
И где то точно валялся AS2 Bundle для TextMate

Apple подняли запрет на не C/C++/Objective C код для third party приложений под iOS]1][2] Я уже вижу как Adobe радуется победе, и потом – ничего. Компилятор Flash > C ( или как он там работает Flash > ObjectCode/MachineCode? ) Тормозной, и в плане компиляции, и в плане результата, простейшие приложения убоги в плане производительности и энергосбережения.
Все бы ничего, но мы говорим об Adobe, я не думаю, что мы увидим что либо близкое к рабочему. Но это прекрасные новости для Unity3D
[1] apple.com <apple.com>
[2] #921767 <juick.com>

Это у меня что то глючит, или все флэш плееры правда сидят на одном и том же ядре, и не пересаживаются с него? У меня одно ядро — 97 процентов нагрузки, второе 4 процента.

Кстати, я думаю, что очень важной причиной для закрытия Flash'а, является – Европейская Ассоциация Рекламы. Дело в том, что ранее, на протяжении 10 лет, ЕАР закрыли где то 7 рекламных компаний Apple (Power Mac, iPhone и другие продукты). ЕАР, в принципе очень хорошая контора (в основном), мне они симпотичны. Их цель, это проверка рекламы, не только на факты но и игру слов. Например, я могу выпуститить 14кбпс модем, и сказать – весь интернет вам доступен, с точки зрения технических спецификаций, и в правду – ему доступен весь интернет, модем без компьютера не может его отображать, но данные то ему доступны. ЕАР проверяет рекламу и на слово, и на "дух".

Что это значит для Флэша? Очень важным параметром рекламы, в iPad — это время баттареи, 10 часов, в основном это делается правильным использованием аппаратного ускорения. Objective C, достаточно неплохо распределеяет процессы по нитям (threads), и для рендерига графики используется6 та феня, которую они называют GPU.

Flash это векторный формат, для тех кто не знает, Вектора очень редко утилизируют GPU, вообще векторный движок Flash не писался для GPU. То есть процесс обработки Flash приложения примерно такой – Взять данные графики, загрузить процессор просчетами, перевести векторную графику в растр, отобразить ( GPU работают, даже на мобильных системах, работают быстрее и лучше имено с растровой графикой, есть оптимизации для векторов, но в основном они ограничиваются Wireframe).

Фактически, если я на iPad запущу какой нибудь сайт, где есть 3-4 Flash баннера, написанные недопрограммистами, то моя батарейка очень быстро выжрется, и ЕАР скажет – не держит ваш айпад 10 часов, 5 часов отработал, уберите из рекламы 10 часов.

___Часть Вторая___

Собственно в 2008ом году я основал свою компанию – Kiichigo, которая должна была вывести меня из Flash'а, в мир Умных Домов. Я нанял пару программистов, пару инженеров и даже ассистентку. Через два месяца я сменил ассистентку, а потом вообще уволил. А в конце 2008ого года я забил на Умные Дома – Кризис Торжествовал. Мой резерв накопленный за 2007-2008 год скоро бы начал подходить к концу – Я вернулся в Флэш.

Но я уже знал, что я не останусь. Поймите меня правильно – Без Флэша, я бы наверное сидел на 25-35 тысячах в год, и работал бы офисным планктоном, в какой нибудь дочерней компании, большой корпорации которая нихрена не делает ^_^. Я буду всегда благодарен этолй технологии. Но с 2005ого года, она почти не выросла, мир AI, Game Development, SOA постоянно росли, Flash стоял. И он тормозил.

В середине 2008ого года, меня наймет UbiSoft. Я стану PlayValue консультантом, моя работа будет заключатся в том, что я буду играть в игрушки целыми днями – и писать отчеты. По хожу я консультировал пару консултировал пару компаний.

Тогда я думал – дейв, у тебя только 2 года опыта программирования, поработай в флэше еще пару лет, а потом уже переходил в C/C++. Но Флэш не рос, он продолжал гордо стоять Флагманом Адоби.

Стоит заметить, что в UbiSoft'e меня за программиста не считали, и не считая трех-четырех человек, до сих пор не считают. Он делают софт, который пашет в разрешении 1920х1080, при 40 кадрах в секунду. Для систем на которых 256 мегобайт оперативной памяти (да на PS3 только 256 мегобайт). И их софт работает и не тормозит. Я же делаю Интерфейсы которые могут выжрать 300 мегобайт просто так. С их точки зрения я Кодер, и я никогда не настаивал на обратном.

В 2009ом я и еще четыре человека, откроем неофициальную гейм-студию. В конце 2009ого, я начну работать на дочернюю компанию Swedish Telecom, делая сначала парт-тайм работу по флексу, и понемножку переходя на AOP.

Я очень благодарен Flash'у. Но сейчас у меня не видется не одного Флэш клиента на лето-осень – и я не жалею об этом. И я не буду скучать.

И если вы не сдохли от скуки читая меня. И вы Flash-Кодер. Я надеюсь, что вы задумаетесь – вы правда хотите делать интерфейсы? В этом мире есть AI, Data Mining, Telecommunications, Bioengineering, Machine Learning, SOA и много других очень интересных отраслей, где программисты, инженеры и архитекторы, не просто ставят кнопки, а придумывают новые решиня, которых никто не использовал раньше (хотя большинство из них, придумали еще в 1950ых, просто с тогда их не могли реализовать, а сейчас забыли ^_^).

___Часть Первая___

Однажды ко мне в руки попал Флэш 5, я тогда был студентом факультета Маркетинга. И я думал, что это технология для создания презентациЙ. Как будущий маркетолог – мы делали презентации почти каждую неделю, иногда несколько. И я Рулил. Мои одногруппники использовали PowerPoint. Не знаю, в чем была проблема, мне никогда он не нравился. Но у них постоянно были проблемы с шрифтами, кодировками и прочим.

Флэш был лишен этого – он позволял встраивать картинки, текст, шрифты. Делать экспорт в exe.
Я начал учить его все больше и больше, потихоньку начал программировать, сначала в Flash 5 стиле, потом я узнал, что оказывается уже как год назад вышел Flash MX, я узнал про то как правильно работать с событиями.

Flash 5 > Flash MX > Flash mx 2004 учили меня постепенно более профессиональному программированию. Это был явный прогресс, и для меня достаточно быстрый (Я начал с Flash 5 в 2002, Flash MX —  2003 и Flash MX 2004 — 2003ий )

Flash 5 научил меня базисам программирования, for, if..else, scalars, strings, arrays, Flash MX научил меня OOP, не Классовому, но OOP. Ну и Flash MX 2007 закончил мое обучение. Потом настал 2005ый год. Вышел Flex Alpha, ActionScript 3. Он принес новый язык, JIT, и много всего. И всяческое отсутствие примеров. Я купил себе тогда три книжики, Java Philosophy, C# The Definitive Guide и Design Patterns (GoF). По ним я учил AS3/Flex. Заиствуя идеи из других языков. Это был мой первый опыт работы с другими языками.

Где то тогда  ко мне пришла мысль – У меня 2.5 года опыта в технологии Flash, но с 2-3 месяцами опыта в C#, я мог создавать приложения, которые манипулирвоали файлами, мог делать какие то утилитки. Если я не ошибаюсь на эту мысль меня подтолкнул знакомый Perl программист. Который кроме того, что мог паять сайты на Perl'е, но и мог писать баши. Переименовать 10 тысяч фотографий, в новый формат для него было пустяковым делом. Да это мелочи, но мне было как то обидно в первый раз за мою технологию. Все что я мог делать – это сайтики.

Где то в 2006ом году, когда Болгария вступила в ЕС, и мои планы с риэлторством накрылись тазом – я решил попробывать стать программистом. На меня тогда человек из достаточно известно компании в Flash индустрии. Для тех кто не знает, где то с 2005ого года, я вел блог по флэшу, я вроде был 3 или 4ым Флэш Блоггером в Рунете, сразу после Novemberain ^_^. Вобщем, хоть я и не был программистом, я усиллено делал вид, что я супер кодер ^_^.

Поработал я на них меньше недели. Я не справился с заданием. Тогда я решил попробывать себя на Freelance рынках вроде Rent-a-coder, в начале 2007ого года, я был приглашен в качестве консультанта в Рекламное Агенство, которое разрабатывало Фреймворк для сайта Toyota Scion.

Собственно если бы я не познакомился с парой человек в 2007ом году, и не попал бы совершенно случайно на проект с Тойотой (где я делал не так много, на самом деле). – Я бы наверное еще года два занимался дешевым кодингом.

Позже, где то в Августе 2007ого, меня пригласили в Сан Франциско – работать на стартап, и стать миллиардером.
Там я познакомился с парой докторов биологических наук, двумя программистами в сфере Agent Oriented Programming и Machine Learning. И несколькими Client-Side девелоперами.

Тогда я в первый раз понял – я занимаюсь какой то хуйней. Сервер ищет, индексирует, делает 90 процентов работы, а я просто вывожу это на экран. Я как официант в ресторане. Я не готовлю, я просто ношу еду.