C++ / QT по сравнению с [закрытым] Adobe AIR

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

14
задан mavroprovato 1 December 2014 в 08:49
поделиться

6 ответов

Если необходимо получить доступ к большому количеству собственных библиотек, необходимо будет остаться в спокойной среде. Следует иметь в виду, что AIR является однопоточным и выполняется на Flash player (что-то, что было первоначально разработано для покадровых анимаций.) Однако в зависимости от стиля приложения Вы создаете, AIR мог бы подойти Вам очень хорошо.

Остерегаются, тот AIR может стать сбивающим с толку, потому что существует несколько различных путей разработчика к создаванию приложений AIR: 1) использование html/javascript и SDK AIR, 2) использование Flash/Actionscript и 3) использование Flex SDK и/или разработчик Flex. Последний является самым способным до происхождения из традиционной настольной среды разработки.

Небольшие приложения, которые являются Web 2.0 для сцепления в веб-сервисы, являются хорошими кандидатами на приложения AIR. Вещи как клиент IM Digsby были бы большими. Мое любимое приложение AIR, которое я видел к настоящему времени, является Макетами Basamiq. Другими полезными приложениями является TweetDeck. Это хорошие примеры типов вещей, которые являются подходящими для решения с AIR.

необходимо посетить Adobe Showcase и посмотреть на некоторые приложения: http://www.adobe.com/products/air/showcase/

кроме того, если Вы надеетесь просто выходить из игры C++, я полагаю, что QT имеет некоторую привязку Java, теперь... также я помню некоторую привязку Python, но никогда не смотрю на них сам.

До QGraphicsView, люди сделали подобные вещи в Flex. Я пытался гуглить прямо сейчас, но не мог найти их первоначально, но люди взяли вещи как большое изображение и затем только отобразили текущий регион в окне. Кроме того, в следующей версии Flex они остро создают официальный компонент ViewPort:
http://opensource.adobe.com/wiki/display/flexsdk/Gumbo+Viewport

11
ответ дан 1 December 2019 в 10:19
поделиться

Flex является открытым исходным кодом, можно загрузить SDK бесплатно, нет никаких затрат на лицензирование, связанных с ним. (см. их FAQ)

Они действительно поставляют 'разработчика гибкого провода', который является некоторым пользовательским Eclipse, я думаю, и который стоит денег, но можно отлично работать без него.

документы могут быть найдены в livedoc Adobe страницы. (который приблизительно к , достаточной причине состоит в том, чтобы сам по себе не понравиться Adobe ;))

, я действительно задаюсь вопросом, если Вы являетесь хорошо сведущими в QT, почему Вы рассматриваете что-то еще? Какие преимущества Вы ожидаете, что AIR даст Вам по QT?

у меня есть некоторый опыт и с QT и с Flex, но совсем не достаточно взвешивать один по сравнению с другим. Я действительно знаю, что QT/C++ очень, намного более сформировавшийся, чем Flex/ActionScript.

, Если Вы уже знаете QT, я не думаю, что время тратит изучение, что новая платформа (и язык программирования) получит Вас достаточно, чтобы быть честной...

4
ответ дан 1 December 2019 в 10:19
поделиться

Пойдите проводят некоторое время с этим приложением AIR и затем спрашивают себя, если Adobe Flex и AIR стоят инвестировать Ваше время в освоение (быть готовым спросить себя, почему что-то сопоставимое не существует для подобных C++ / QT):

Tour de Flex

Tour de Flex является настольным приложением для исследования возможностей Flex и ресурсов, включая базовые компоненты Flex, Adobe AIR и интеграцию данных, а также множество сторонних компонентов, эффектов, кожи, и т.д.

Некоторые Ваши вопросы:

  • Flex может быть кодирован в MXML и ActionScript3. AIR дополнительно поддерживает HTML/DOM/JavaScript, программирующий как WebKit, механизм рендеринга HTML встроен во время выполнения AIR.
  • MXML является декларативный DSL XML, который компилируется в обязательный код ActionScript3. Это довольно хорошо, тем не менее, для того, чтобы декларативно кодировать графические формы UI (т.е. представления шаблона MVC).
  • ActionScript3 имеет heratige, который основан на JavaScript, но он был украшен к точке, он больше напоминает Java или C#. Это имеет пространство имен пакета, классы и интерфейсы с наследованием, членскими ключевыми словами защиты доступа класса, конструкторами, статическими участниками и некоторыми очень хорошими дополнениями по Java: свойства, события, привязка данных и закрытия.

программирование стиля Flex является также однопоточной моделью, которая полагается на асинхронные взаимодействия ввода-вывода. Это - более простая модель к программе, чем многопоточный Java Swing или.NET C# приложения Winform, все же разрешения достигнуть тех же конечных результатов поведения программы. Я уточняю тот здесь:

Flex Асинхронный ввод-вывод по сравнению с Java и Явной Поточной обработкой C#

5
ответ дан 1 December 2019 в 10:19
поделиться

Я использовал QT и Flex (не самого так много Воздуха, хотя), и нашли, что Flex быстрее для подъема приложений и выполнения, а также изменения, в то время как QT дает Вам больше контроля - особенно в установщике. Воздушный установщик приложения является довольно неловким, или по крайней мере это было, когда я попробовал его, хотя это, возможно, было улучшено с тех пор.

большим преимуществом Воздуха является так большая часть кода для него, может быть выполнен в Flash в веб-страницах. Вы не можете получить доступ к локальной файловой системе и т.д. от сети из соображений безопасности, но примерно все остальное портативно.

3
ответ дан 1 December 2019 в 10:19
поделиться

Если Ваш поиск некоторых примеров "забавного" UIs использование QT и SVG, смотрите на KDEGames [1][2] и проекты KDEEdu [3] [4]. Существует партия хорошего кода там, который использует QGraphicsView и SVG к созданным масштабируемым интерфейсам. Конечно, обратите внимание, что это, это - GPL так быть осторожным, что Вы "одалживаете", если Ваше приложение не.

[1] http://games.kde.org/

[2] http://websvn.kde.org/trunk/KDE/kdegames/

[3] http://edu.kde.org/

[4] http://websvn.kde.org/trunk/KDE/kdeedu/

1
ответ дан 1 December 2019 в 10:19
поделиться

Я буду второй комментарий Pieter - если Вы уже будете знать, что QT, перемещаясь в совершенно новую среду собирается взять НАМНОГО дольше.

кварта имеет преимущество того, чтобы быть межплатформенным, и очень сформировавшимся: существуют библиотеки для Windows, Linux и Mac OS X. Я не чрезвычайно знаком с AIR вне знания, что это от Adobe, но сайт продукта, кажется, указывает, что это для богатых интернет-приложений ( http://www.adobe.com/products/air/ ). Если бы это правда, то QT был бы намного лучшим выбором при разработке настольного приложения.

0
ответ дан 1 December 2019 в 10:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: