Flash. Flex. Future.
November 21, 2011 – 2:55 pmЛюди, вы все что, [цензура]? Прийдите в себя. Read the rest of this entry »
Люди, вы все что, [цензура]? Прийдите в себя. Read the rest of this entry »
Или я что-то пропустил или Adobe под шумок прекратил поддержку AIR под Linux.
Ubuntu, Fedora и остальные будут жить с AIR 2.6. Новых версий не будет.
Оригинал новости
и картинка
Вот такие пирожки. Адоб как всегда в своем репертуаре
.
Бросайте линухи — все на винды с маками.
Как сделать приложение с кастомным хромом можно найти за 5 минут.
Речь пойдет о том как к нему добавить тень.
Проблема: Добавить к аир приложению тень.
Всем привет.
В ходе последнего проекта накопилось некоторое количество интересностей, проблем и их решений. Я постараюсь рассказать о них в цикле статей.
Проблема 1: Генерим html строку, устанавливаем ее как HTML.htmlText, не отображаются картинки и swf-файлы.
Решение: Нужно разрешить добавлять контент из html строки в “песочницу” приложения
HTML.htmlLoader.placeLoadStringContentInApplicationSandbox = true;
Проблема 2: Есть HTML компонент. Нужно отделить контент, от скролла. Хочется чтобы скроллы были spark.
Решение:
HTML – это mx компонент. Гибкость работы со скроллами нам дают spark компоненты. Поэтому нужно преврать mx:HTML в компонент поддерживающий spark скроллы. Минимальным требованием является реализация spark.core.IViewport интерфейса. Приблизительный код компонента:
package com.the33cows.spark { import flash.events.Event; import mx.controls.HTML; import spark.core.IViewport; public class SparkHTML extends HTML implements IViewport { public function SparkHTML() { super(); //прячем родные скроллы verticalScrollPolicy = "off"; horizontalScrollPolicy = "off"; clipAndEnableScrolling = true; } private var _verticalScrollPosition:Number; private var _clipAndEnableScrolling:Boolean; private var _horizontalScrollPolicy:Number; [Bindable] public override function get contentHeight():Number { return super.contentHeight ; } [Bindable] public override function get contentWidth():Number { return super.contentWidth; } [Bindable] public override function get horizontalScrollPosition():Number { return super.horizontalScrollPosition; } public override function set horizontalScrollPosition(value:Number):void { _horizontalScrollPolicy = value; super.horizontalScrollPosition = value; } [Bindable] public override function get verticalScrollPosition():Number { return super.verticalScrollPosition; } public override function set verticalScrollPosition(value:Number):void { _verticalScrollPosition = value; super.verticalScrollPosition = value; } public function getHorizontalScrollPositionDelta(navigationUnit:uint):Number { return 0; } public function getVerticalScrollPositionDelta(navigationUnit:uint):Number { return 0; } [Bindable] public function get clipAndEnableScrolling():Boolean { return _clipAndEnableScrolling; } public function set clipAndEnableScrolling(value:Boolean):void { _clipAndEnableScrolling = value; } override protected function createChildren():void { super.createChildren(); if (htmlLoader) { //решаем проблему 1 на глобальном уровне. //Нужно быть внимательным если контент генерится "на стороне" htmlLoader.placeLoadStringContentInApplicationSandbox = true; //слушаем изменение размеров внутренностей html htmlLoader.addEventListener(Event.HTML_BOUNDS_CHANGE, onHtmlBoundsChange, false, -100); } } private function onHtmlBoundsChange(event:Event):void { dispatchPropertyChangeEvent("contentHeight", contentHeight, contentHeight); dispatchPropertyChangeEvent("contentWidth", contentWidth, contentWidth); } } }
использование
<s:HGroup> <sprak:SparkHTML id="contentHtml" width="650" height="100%" /> <!-- отделили скролл --> <s:HGroup height="100%" width="100" gap="0" horizontalAlign="right" paddingRight="1" /> <!-- указали наш компонент как вью порт --> <s:VScrollBar id="scrollPage" height="100%" viewport="{contentHtml}"/> </s:HGroup>
Данный код на 100% решил мои задачи. Если нужно больше – дерзайте.
На сегодня пока все
. Ждите продолжения
Вылетел у меня эклипс и вместе с ним погиб воркспейс. После запуска эклипса, он грузился до определенного момента и вис намертво. Первый раз я просто пересоздал вокрспейс и импортнул проекты по-новой (сделать такое мне посоветовали несколько человек). Но вместе с воркспейсом погибли все мои настройки и это было грустно.
Через какое-то время эклипс повторил свой трюк. И я таки решил найти другое решение, сначала пытался использовать различные варианты запуска эклипса из командной строки, но ничего не вышло.
Поиск дал следующее решение.
Перескажу рецепт:
идем в папочку воркспейса и убиваем файл .metadata/.plugins/org.eclipse.core.resources/.snap
и все отлично запускается. Справедливо как для мак ос, так и для виндовс.