вівторок, Березень 4, 2008
Якщо використати якийсь флеш-трейсер (я використовую Flash Tracer для firefox), то можна зловити трейси від Design View у Flex Builder 3.
Наприклад при натисканні кнопки миші на пустий Application видає таке:
-> Begin call to AS: setFrameRate(60.0)
<- End call to AS: setFrameRate, Result = null
-> Begin call to AS: handleLMouseDown(121,160,false,false,false)
<- End call to AS: handleLMouseDown, Result = null
При відпусканні:
-> Begin call to AS: setFrameRate(24.0)
<- End call to AS: setFrameRate, Result = null
-> Begin call to AS: handleLMouseUp(121,160,false,false,false)
<- End call to AS: handleLMouseUp, Result = null
Зразу бачимо, що при натисканні, а після цього можливе таскання компоненту, збільшується частота кадрів. Напевно щоб перетаскування було плавніше 
Теґи: Design view, Flex Builder 3
Категорії: Flex Builder 3, Знайдені блохи | Коментарів: 2 »
понеділок, Березень 3, 2008
Якщо в класс додати метатеґ [Event], [Style] або [Effect] та визначити їхні імена, то Flex Builder 3 буде видавати підказки по цим іменам:

Теґи: Flex Builder 3, [Effect], [Event], [Style]
Категорії: Flex Builder 3, Знайдені блохи | Немає коментарів »
неділя, Березень 2, 2008
Усі методи класу Object створені динамічно у його властивості prototype. Тобто використано прототипний тип спадкування. Тобто Вам не потрібно використовувати ключове слово override для того, щоб перевантажити метод.
describeType для Object показує, що три методи (hasOwnProperty, isPrototypeOf, propertyIsEnumerable) підпадають до класового типу спадкування. Алей для них не потрібно використовувати override.
Оновлення:
Практично теж саме з Array. (Є іще класи, які підпадають під вище сказане, але переважно вони є final класами)
Далі результат роботи trace(describeType({}));
Читати далі »
Теґи: Array, hasOwnProperty(), isPrototypeOf, Object, override, propertyIsEnumerable, prototype
Категорії: ActionScript 3.0, Знайдені блохи, Спіймані блохи | Немає коментарів »
субота, Березень 1, 2008
private function trace(…args):void
{
args.push(” - Custom Trace”);
public::trace.apply(null, args);
}
Якщо ми запустимо
trace("Hello!");
в output отримаємо
Hello! - Custom Trace
Наш метод trace має буди у будь-якому namespace крім public. Інакше буде Stack overflow Error.
Логічніше було-б використовувати namespace native, але він також не дає змогу використовувати public та іще видає Internal build error, якщо не написати так:
native::["trace"]["apply"](null, args);
Теґи: namespace, native, trace
Категорії: ActionScript 3.0, Flex Framework 3, Корисні блохи | Немає коментарів »
четвер, Лютий 28, 2008
У Flex є такий компонент PopUpButton. Поведінка його схожа на ComboBox, тільки ми маємо можливість задати будь-який компонент який відкриється при натисканні. Але маємо неприємність з тим, що при натисканні на щойно відкритий компонент він зразу зачиняється. Тобто ми не можемо використовувати, наприклад, List з встановленим allowMultipleSelection=true та вибрати декілька елементів в List. У компонента PopUpButton є потрібна нам властивість:
/**
* @private
* Storage for the closeOnActivity property.
*/
private var _closeOnActivity:Boolean = true;
/**
* @private
* Specifies popUp would close on click/enter activity.
* In popUps like Menu/List/TileList etc, one need not change
* this as they should close on activity. However for multiple
* selection, and other popUp, this can be set to false, to
* prevent the popUp from closing on activity.
*
* @default true
*/
private function get closeOnActivity():Boolean
{
// We are not exposing this property for now, until the need arises.
return _closeOnActivity;
}
/**
* @private
*/
private function set closeOnActivity(value:Boolean):void
{
_closeOnActivity = value;
}
Але як бачите вона є private
Рішення:
Потрібно зупинити всі MouseEvent.Click від нашого PopUp’у :
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:PopUpButton>
<mx:popUp>
<mx:List id="list" allowMultipleSelection="true">
<mx:dataProvider>
<mx:Array>
<mx:String>Один</mx:String>
<mx:String>Два</mx:String>
<mx:String>Три</mx:String>
<mx:String>Чотири</mx:String>
<mx:String>П'ять</mx:String>
</mx:Array>
</mx:dataProvider>
</mx:List>
</mx:popUp>
</mx:PopUpButton>
<mx:creationComplete>
<![CDATA[
list.addEventListener(MouseEvent.CLICK, listClickHandler, true);
]]>
</mx:creationComplete>
<mx:Script>
<![CDATA[
private function listClickHandler(event:MouseEvent):void
{
event.stopImmediatePropagation();
}
]]>
</mx:Script>
</mx:Application>
Теґи: closeOnActivity, Flex Framework 3, PopUpButton
Категорії: Flex Framework 3, Знайдені блохи, Спіймані блохи | Немає коментарів »