Flex 3: различия между версиями

Содержимое удалено Содержимое добавлено
про контролы
Строка 137:
}
</source>
 
== Контролы ==
=== Alert ===
<source lang='javascript'>
import mx.controls.Alert;
Alert.show("some thing");
</source>
=== Button ===
<source lang='xml'>
<mx:Button id="button" visible="false" click="buttonHandler()"> // кнопка будет доступна как this["button"] или просто button в функциях Application-а, но не в статичкеских методах.
<mx:label>aaa</mx:label>
</mx:Button>
</source>
Обработка клика мыши и нажатия клавиш
<source lang='javascript'>
public function a1(e:MouseEvent):void{
a3();
}
public function a2(e:KeyboardEvent):void{
if (e.keyCode == Keyboard.ENTER){
a3();
}
}
submit.addEventListener(MouseEvent.CLICK, a1 );
submit.addEventListener(KeyboardEvent.KEY_DOWN, a2 );
</source>
 
=== ComboBox ===
<source lang='javascript'>
__lc = new ComboBox;
__lc.dataProvider = LogicClass.getLookup(); // метод который возвращает список объектов [{}, {}]
__lc.labelField = "v"; // указываем, какое поле использовать в качестве label
</source>
=== DataGrid // простая таблица ===
==== dataProvider ====
Для указания источника данных используется поле dataProvider
<mx:DataGrid dataProvider="{list}">
где list был определён ранее:
[Bindable] // не знаю, что именно означает это ключевое слово, но без него компилятор выдаёт warning
public var list:Array=[{"aa":11, "bb":"qwq"},{"aa":22, "bb":"asd"}];
 
Если данные для dataProvider должны генериться, то dataProvider лучше установить программно (внутри функции инициализации):
asf.dataProvider = a1.list;
а в разметке mxml указывать связь с предполагаемыми полями:
<mx:DataGridColumn headerText="Column 1" dataField="aa" />
 
http://www.adobe.com/devnet/flex/quickstart/using_data_providers/
=== AdvancedDataGrid // продвинутая таблица ===
<mx:AdvancedDataGrid id="ADG" headerShift="Alert.show('asd');">
события:
headerShift="Alert.show('asd');" // срабатывает при изменении порядка колонок
=== Label ===
'''Свойства'''
 
text отображаемый текст
htmlText текст с html-форматированием. умеет довольно мало. например, не умеет таблицы
умеет обрабатывать html-ссылки. чтобы ссылка стала кликабельна надо выставить selectable:
<source lang='javascript'>
s.htmlText = "<a href='http://google.ru/' target='_blank'>яндекс</a>";
s.selectable = true;
</source>
'''События'''
имя описание свойства события
=== List ===
list.dataProvider.removeItemAt(1); // удалить из вторую строку из списка
list.selectedIndex; // номер выбранного пункта
list.selectedIndices; // номера всех выбранных пунктов
list.selectedItem; // объект выбранного пункта
from.selectedItems; // список выбранных объектов
list.dataProvider.toString() // тексты всех элементов списка
list.dataProvider[0].toString() // текст первого элемента
 
=== ProgressBar ===
source объект, процесс изменения которого показывает ProgressBar. При загрузке файла - это ссылк на объект типа FileReference.
label текст, который отображается под ProgressBar-ом ("loading 0%")
 
=== TextArea ===
=== TextInput ===
=== Tree ===
Раскрыть элемент дерева:
<source lang='javascript'>
............
customTree.addEventListener(FlexEvent.CREATION_COMPLETE, handlerComplete);
customTree.dataProvider = new ArrayCollection(dpTree);
addChild(customTree);
}
protected function handlerComplete(event:FlexEvent):void{
customTree.expandItem( customTree.dataProvider[0], true );
customTree.expandItem( customTree.dataProvider[0]["children"][0], true );
}
</source>
 
пролистнуть к выбранному item-у:
__tree1.verticalScrollPosition = verticalPos; // это int номер строки, чтобы было по-красивше, то надо чуть сместить:
__tree1.verticalScrollPosition = verticalPos > 3 ? verticalPos - 3 : verticalPos;
 
=== Общее для всех контролов ===
==== errorString ====
Если установить errorString, то контрол будет обрамлён красной рамкой, а при наводе на него мыши появится сообщение об ошибке (значение errorString).
 
 
 
== Переменные окружения (url и пр.) ==
Строка 148 ⟶ 250 :
</object>
статья в документации Adobe называется "Passing request data with URL fragments"
 
== Менеджеры ==
=== PopUpManager ===