воскресенье, 15 апреля 2012 г.

Что мне не нравится во Flash.

В 80% случаях я всегда занимаюсь тем, что мне нравиться и приносит удовольствие, да и многие поступают так же само, но как не крути, универсальных инструментов и методов нет, и практически у всего есть свои изъяны и грабли. Этот пост, скорей всего, просто написан, чтобы выговориться о наболевшем, нежели облить Flash помоями.
На самом деле, мне во Flash нравиться все, абсолютно все, и когда все дольше работаешь с Flash, начинаешь понимать страшный и коварный план разработчиков Flash Player которые сделали практически совершенный инструмент в своей области. Но, как я говорил выше - ничего совершенного нет.
Больше всего во Flash мне не нравиться «Политика безопасности Flash Player» (далее просто ПБ), с одной стороны это настоящий Ад, а с другой – очень и очень полезная вещь. Лично я, когда первый раз столкнулся  с ПБ, я проклял разработчиков, да, это были времена, когда я был совсем зеленый и не понимал сути многих аспектов Flash Player, да и вообще многих вещей. Скажу честно, тогда я не понимал, зачем нужны всякие там allowDomain, allowInsecureDomain, loadPolicyFile, crossdomain.xml и прочее что относиться к flash.system.Security, я не понимал, почему у браузеров нет подобных проблем, в отличие от Flash Player. Но, время шло, я немного повышал свой уровень  Flash-разработчика, и настал тот момент, когда я понял, что на самом деле разработчики Flash Player все сделали правильно, но есть одно но – они сделали это немного запутанно и поэтому многие новички тоже поначалу не понимают всю суть происходящего.
На днях мне пришлось рассказывать «новичку» про ПБ, у него было простое задание, swf-файл под названием SWF_A должен загрузить swf-файл SWF_B с другого домена, при этом SWF_B должен выполнять некоторый код файла SWF_A. Примерно, вот такое задание я дал ему, зная его опыт, я знал, что он выполнит задание быстро и без моего присмотра, но я немного был неправ. Да, он быстро все сделал, и локально у него все работало (судя по его словам), но как только он загрузил swf-файлы на соответствующие домены, у него все перестало работать. Не очень приятно отлаживать проект, который уже лежит на домене, он долго пытался выяснить причину поломки, но так и не смог и в итоге попросил меня о помощи. 
Теоретически все у него было правильно, но не было указано основным параметров ПБ. На пальцах я начал ему рассказывать, что такое ПБ и для чего оно нужно, это очень не благородное дело, и  с меня плохой рассказчик, как бы там не было, он сказал, что кое-что понял, хотя, я на всякий случай отправил его почитать официальную документацию.
Я знаю многих flash-разработчиков, которые никогда не имели дел с ПБ, да и я, до недавнего времени тоже не встречался с ПБ, не знаю хорошо это или плохо. На мой взгляд, если взять новичка и начать ему рассказывать про ПБ, то есть вероятность что он не поймет, зачем было все так усложнять и запутывать, вот именно эта запутанность мне не нравиться во Flash.
Разработчики Flash Player сделали все правильно, если бы не было ПБ, я бы спокойно смог загрузить в свой swf-файл какой-либо swf-файл известнейших на весь мир «Ферм» и других соц. игр, и спокойно использовать классы и код загруженного swf-файла. С другой стороны, разработчики, на мой взгляд, сделали ПБ немного запутанной, но опять же, чем дольше работаешь с ПБ, тем больше понимаешь, что все сделано правильно, и никакой запутанности нет, и даже все правильно. Просто опыт приходит со временем, и поначалу для многих, некоторые вещи не являются очевидными, но это временное явление, и в основном все становиться на свои места.
Во Flash мне нравиться все, абсолютно все, и даже ПБ, хотя, на мой взгляд, ПБ немного запутана, но так и должно быть, ведь универсальных инструментов не существует.
Все. Всем удачи. Пока. Всех с Пасхой.