Archive for the ‘Flash Builder 4’ Category

AIR. Полезные советы. Custom chome, тень и html

Tuesday, October 4th, 2011

Как сделать приложение с кастомным хромом можно найти за 5 минут.
Речь пойдет о том как к нему добавить тень.

Проблема: Добавить к аир приложению тень.

Read the rest of this entry »



AIR. Полезные советы. Часть 1.

Monday, October 3rd, 2011

Всем привет.
В ходе последнего проекта накопилось некоторое количество интересностей, проблем и их решений. Я постараюсь рассказать о них в цикле статей.

Проблема 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% решил мои задачи. Если нужно больше – дерзайте.

На сегодня пока все :). Ждите продолжения



Integrate SourceMate into FlashBuilder

Tuesday, April 27th, 2010

Есть проект SourceMate который добавляет различные плюшки к функционалу Flash Builder.
После некоторого обсуждения в жуйке я поместил предложение об интеграции SourceMate и FlashBuilder, там всего пара вариантов интеграции. Или купить весь проеэкт или включать лицензию на SourceMate в премиум версию билдера. Если вам нравится — голосуйте за интеграцию SourceMate и FlashBuilder.
Я считаю, что это вполне хороший вариат в плане съэкономить нам нервы, адобу деньги и предоставить нам более адекватную и продуктивную среду разработки



States во Flex 4, снова баги

Thursday, October 22nd, 2009

Все в них хорошо.
Но не работает свойство basedOn ошибка опять в генерации кода, причем полностью лажевая — берут строку 2 раза в ковычки

basedOn=""parentStateName""

естественно потом он не ищется и стейт не работает, флеш ругается.
В jira знают про него SDK-23655 и уже пофиксили (ровно вчера).

К сожалению пока это мне никак не поможет, придеться ждать новой версии sdk4.

А вообще переезд на Flex 4, лично у меня, проходит со скрипом, практически каждое мое действие натыкается на какой-то баг или в Flash Builder 4 или в sdk. Счет пока в пользу sdk4, 3 бага —3 моих дня втыкания в пустоту.
Единственное, что радует он стал гораздо быстрее чем третий. Версии к 7 будет совсем хорошо. Прям как у Windows 7 🙂

Удачи, и поменьше чужих багов.
ЗЫ кому интересно постоит баги в адоб, я могу поделится (пока один, но думаю на нем все не закончится)



Проблемы с Flash Builder 4 и Flex Library проектом

Thursday, October 15th, 2009

UPD: баг пофиксили, испарвление будет в новой версии, УРА!

На днях пришла необходимость попробовать перенести библиотеки с flex sdk 3.2 на flex sdk 4.  Заодно повтыкать в Flash Builder 4 и различные радости которые нам принес Gumbo.

Все было хорошо и ничто не предвещало беды ). После создания проекта компилятор сразу начал ругаться. “Почему бы и нет” – подумал я, ведь различия в сдк большие. Начал выяснять почему.

Первым сюрпризом было то, что он ругался на mxml класс, который обращался к AS классу лежащему в том же пакете. “Едить колотить, какая та лажа” – подумал я. И волевым движением руки добавил в mxml импорт,  этого нужного класса.

Read the rest of this entry »




]]> rss о RIA от 33 Коровы
Забадать RSS!
]]>
~~~~~~