Aby zablokować okno przed ruchem (szczególnie przydatne w przypadku Iframe, który znika przy przeciąganiu) należy do okna dodać wywołanie funkcji stopDragging() uruchamianym na mouseDown.
Uwaga!! działa tylko w kontenerach dziedziczących po TitleWindow czy Panel
<mx:Panel ... mouseDown="stopDragging()" />
piątek, 15 luty 2008
Blokowanie okna
środa, 13 luty 2008
IFrame problem
W innym poście opisze sposób wyświetlania PDFów bądź innych stron WWW w okienku Flexa za pomocą IFrame. Teraz przedstawię rozwiązanie problemu, który pojawił sie przy zastosowaniu tego rozwiązania.
Otóż przy wychodzeniu z zakładki z Iframem we Flexie i powrocie, cała zawartość IFrama znikała.
Rozwiązanie?
Dodać do pliku na którym wyświetlany jest nasz swf ( czyli np index.html, czy main.html - można znaleźć w Builderze -> bin itd)
w części AC_FL_RunContent
parametr
“wmode”, “opaque”,
poniedziałek, 11 luty 2008
DataGrid - sortowanie Dat
Cd. problematycznego sortowania w DG. Tym razem sposób na sortowanie dat:
private function sortDates(a:Object, b:Object):Number{
var date1:Date = new Date(a.dataCzasReal);
var date2:Date = new Date(b.dataCzasReal);
if(date1<date2)
return -1
else if(date1>date2)
return 1;
else return 0;
}
Zmiana koloru czcionki w komórce DataGrida
Chcąc zmienić kolor czcionki prezentowanej zawartości datGrida w zależności od jego wartości należy skorzystać z ItemRenderera
<mx:DataGridColumn headerText="wartosc"
itemRenderer="sciezkaDoKomponentu.ColorComponent" />
ItemRenderer
public class ColorComponent extends Label{
override public function set data(value:Object):void
{
if(value != null)
{
super.data = value;
if(value.wartosc == "1") { //okreslamy dla jakiej wartosci
setStyle("color", 0x0000FF) ;
}
else if(value.wartosc =="2"){
setStyle("color",0x000000);
}
else {
setStyle("color", 0x0000FF);
}
}
}
DataGrid - sortowanie liczb
W komponencie DataGrid sortowanie traktuje wszystkie elementy jako obiekty typu String i w taki też sposób je sortuje, co powoduje że np liczby 1, 32, 112 po sortowaniu ustawione będą w następującej kolejności: 1,112,32
Chcąc mieć kolumnę posortowaną numerycznie należy dołączyć własną funkcję sortowania:
private function sortFunc(a:Object, b:Object):Number{
if (a.lp==null) {a.lp="0"}
if (b.lp==null) {b.lp="0"}
var lp1:int= parseInt(a.lp);
var lp2:int= parseInt(b.lp);
if (lp1 <>
return 1;
}else if (lp1 >lp2){
return -1;
}else{
return 0;
}
}
i dołączyć ją do kolumny którą chcemy sortować w ten sposób:
<mx:DataGridColumn headerText="Lp" labelFunction="lpLabelHandler" sortable="true" width="45" sortCompareFunction="sortFunc" />
Button - enabled - zależność od 2 czynników
Zdarzyć się może, że możliwość klikania na guzik chcemy dać użytkownikowi kiedy spełnione są 2 warunki np.
Wykonanie akcji na danym elemencie dataGrida
1) kiedy wybrany jest jakiś obiekt z DataGrida (selectedItem!=null)
2) kiedy nie wykonano wcześniej tej operacji na wybranym elemencie DataGrida
Stworzyć taką zależność można za pomocą poniższego kodu:
enabled="{(DG.selectedItem != null)?(DG.selectedItem.jakiesPole!='WartoscWstawianaPoAkcjiGuzika'):false}"
poniedziałek, 4 luty 2008
ComboBox z XMLa - wyciąganie wartości
Zakładając że każdy wie jak podłączyć ComboBox do XMLa, pomijam tę część.
W notce tej chciałabym pokazać w jaki sposób wyciągnąć wartość z XMLowego ComboBoxa.
ComboBox wygląda tak:
>mx:ComboBox id="comboBoxId" dataProvider="{jakisXml}" labelField="nazwaPolaWyswietlanego" dataField="nazwaPolaWyswietlanego" />
W tradycyjny sposób czyli za pomocą
comboBoxId.selectedItem dostaniemy
>tag>zawartosc>/tag>
Aby dobrać się do zawartości bezpośrednio nalezy skorzystac z metody text(),czyli
comboBoxId.selectedItem.nazwaPolaWyswietlanego.text();



