Dec 2 2009

Flex i klasy z “wieloma” konstruktorami

Jako, ze AS3 nie umozliwia przeladowania konstruktorow w klasach, malo tego, ukrywa konstruktory klas dziedziczonych, czym bardzo utrudnia tworzenie zlozonych obiektow, postaramy sie to obejsc, metoda “kontrolowany multi injection”.

Zalozmy, ze mamy klase Employee dziedziczaca po Person, ktora chcemy inicjowac na dwa sposoby:

wstrzykiwanie statyczne

public function Employee(name: String, surname: String, reward: uint = 0)
{
	super(name, surname);
	this._reward = reward;
}
...
var employee: Employee = new Employee("Jan", "Kowalski", 100);

wstrzykiwanie obiektowe

public function Employee(person: Object, reward: uint = 0)
{
	super(person.name, person.surname);
	this._reward = reward;
}
...
var employee: Employee = new Employee( { name : "Jan", surname : "Kowalski" }, 100);

Co musimy zrobic aby klasa Employee umozliwiala obydwie metody inicjacji? Przypomnij sobie jak wyglada obiekt Array. Masz? Zrobimy podobnie.

kontrolowany multi injection

public function Employee(...args)
{
	var name: String;
	var surname: String;
	var l: uint = args.length;
	if (l == 1 && (args[0] is Object)) {
		name = args[0].name;
		surname = args[0].surname;
	} else if (l == 2 && (args[0] is String) && (args[1] is String)) {
		name = args[0];
		surname = args[1];
	}
	if (name && surname) {
		super(name, surname);
	} else {
		throw new Error("Invalid arguments.");
	}
}

Czyz to nie “Multiple Constructors”? Prawie profesjonalnie ;)


Dec 1 2009

Flex Builder 3 Linux w wersji Alpha 5

afb3a5Jak juz niektorzy mieli okazje doswiadczyc, wersja FB3 Alpha4 dla Linux’a, skonczyla swoj zywot 1 grudnia 2009 roku. Mimo usilnego wpisywania licencji, Flex nie otworzy nic i nic nie skompiluje, niestety. Na szczescie, team Flex’a nie zapomnial o nas – mimo ze Adobe nie chce rozwijac wersji Linux’owej – i przygotowal nam nowa kompilacje. Brak nowych funkcjonalnosci, rekompensuje roczna mozliwosc korzystania z Buildera 3.

Jak juz, przed paroma dniami, poinformowal Matt Chotin na oficjalnym blogu Flex Team, alpha piatka dostepna jest na Adobe Labs.

Pobierz FB3 Alpha5

czlowiek@maszyna:~$ wget http://download.macromedia.com/pub/labs/flex/flexbuilder_linux/flexbuilder_linux_install_a5_112409.bin

Instalacja standardowa, wystarczy nadpisac poprzednia wersje (przeczytaj: Instalacja Flex Builder 3 A4 na Ubuntu).

czlowiek@maszyna:~$ chmod +x flexbuilder_linux_install_a5_112409.bin
czlowiek@maszyna:~$ ./flexbuilder_linux_install_a5_112409.bin

Nov 28 2009

Flex Builder – wymiana splasha

Po standardowej instalacji Flex’a na Linux’ie, dostajemy tez standardowy start splash. Ponizej sposob na jego wymiane.

1. Przygotowujemy graficzke splasha, taka na przyklad
flex-eclipse-splash

2. Nastepnie nadpisujemy juz istniejaca w katalogu

ECLIPSE_PATH/plugins/org.eclipse.platform_XXX

gdzie ECLIPSE_PATH oznacza sciezke do katalogu srodowiska, a XXX wersje Eclipsa, np.

/home/czlowiek/Programy/flex/plugins/org.eclipse.platform_3.3.3.r33x_r20080129

3. Aby zmienic pozycje progress bar’a lub etykiety komunikatow ladowania czy tez jej kolor, nalezy dostosowac wartosci ponizszych wlasciwosci

<property
	name="startupForegroundColor"
	value="F5F4F3"/>
<property
	name="startupMessageRect"
	value="7,220,441,20"/>
<property
	name="startupProgressRect"
	value="0,280,455,15"/>

znajdujacych sie w pliku plugin.xml

4. Na koniec, aby zastosowac zmiany uruchamiamy srodowisko z opcja -clean

czlowiek@maszyna:~$ ~/Programy/flex/eclipse -clean

Oct 5 2009

Flex Builder 3 debugowanie pod Ubuntu

Nawiazujac do poprzedniego wpisu o instalacji Flex Builder 3, pragne dodac krotki opis konfiguracji tego srodowiska w taki sposob aby mozliwe bylo debugowanie kodu w czasie rzeczywistym. Sam mialem z tym problem, wiec moze komus sie przyda.

1. Na poczatek potrzebujemy zmodyfikowanej wersji Flash Playera

czlowiek@maszyna:~$ wget http://download.macromedia.com/pub/flashplayer/updaters/10/flash_player_10_linux_dev.tar.gz -O /tmp/flash_player_10_linux_dev.tar.gz

2. Nastepnie ekstraktujemy do katalogu tymczasowego

czlowiek@maszyna:~$ tar xzvf /tmp/flash_player_10_linux_dev.tar.gz -C /tmp
czlowiek@maszyna:~$ tar xzvf /tmp/flash_player_10_linux_dev/plugin/debugger/install_flash_player_10_linux.tar.gz -C /tmp

3. Instalujemy Flash Player

czlowiek@maszyna:~$ /tmp/install_flash_player_10_linux/flashplayer-installer

czytamy instrukcje i odpowiadamy na pytania, sciaga: y, n ;) .

Restartujemy Firefox’a i na upartego powinno wszystko dzialac. Ja osobiscie mam wieczny problem z kompatybilnoscia FF i FP. Firefox potrafi sypnac sie z byle powodu (sa rozne, tylko jemu znane) lub Flash Player nie odpowiada na zapytanie debuggera. Po wielu doswiadczeniach i zmarnowanych godzinach na analizie problemu doszedlem do wniosku, ze FF nie jest jedyna przegladarka i ze w tej kwestii Epiphany Web Browser sprawdza sie znakomicie.

4. Instalujemy Epiphany Web Browser

czlowiek@maszyna:~$ sudo apt-get install epiphany-browser

5. Konfigurujemy Eclipse-Flex do wspolpracy z nowa przegladarka
Window->Preferences, nastepnie zakladka General->Web Browser teraz klikamy New i wypelniamy formularz zgodnie z zalaczonym PrtScrn’em
Flex changing the web browser
sciaga:

Epiphany Web Browser
/usr/bin/epiphany-browser

Jako, ze Epiphany nie chwyta FF’owego plugina, musimy nadpisac glowny plik playera.

6. Nadpisujemy liba

czlowiek@maszyna:~$ sudo cp /tmp/install_flash_player_10_linux/libflashplayer.so /usr/lib/adobe-flashplugin/libflashplayer.so

Tak oto po paru zabiegach mozemy cieszyc sie “stabilnym” srodowiskiem Flex Builder 3 pod Ubuntu :)
Flex Epiphany debugging

Kodzik

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
	creationComplete="init()">
	<mx:HBox horizontalAlign="center" verticalAlign="middle" width="100%" height="100%">
		<mx:VBox>
			<mx:Label id="lb_helloWorld" text="Hello world" fontSize="36" />
			<mx:HBox horizontalAlign="center" verticalAlign="middle" width="100%" height="100%">		
				<mx:Button id="btn_increase" label="+" />
				<mx:Button id="btn_decrease" label="-" />
			</mx:HBox>
		</mx:VBox>
	</mx:HBox>
 
	<mx:Script>
	<![CDATA[
		private var _fontSize: int = 36;
 
		public function init():void
		{
			this.btn_increase.addEventListener(MouseEvent.CLICK, this.increaseFontSize);
			this.btn_decrease.addEventListener(MouseEvent.CLICK, this.decreaseFontSize);
		}
 
		public function increaseFontSize(event: MouseEvent): void
		{
			this._fontSize++;
			this.lb_helloWorld.setStyle("fontSize", this._fontSize);
		}
 
		public function decreaseFontSize(event: MouseEvent): void
		{
			this._fontSize--;
			this.lb_helloWorld.setStyle("fontSize", this._fontSize);
		}
	]]>
	</mx:Script>
</mx:Application>

Zobacz takze:
- Instalacja Flex Builder 3 na Ubuntu


Oct 4 2009

Instalacja Flex Builder 3 na Ubuntu

Flex, Air, Flash, chyba nie trzeba nikomu tlumaczyc co to jest, z czym to sie je i ze ta technologia opanowala swiat. Postaram sie wiec w paru krokach przedstawic proces instalacji i konfiguracji Flex Builder 3 Linux Alpha 4 na Ubuntu dla potencjalnych programistow. To co w win$hitcie sprowadza sie do paru klikniec w Linuxie wyglada troche bardziej “profesjonalnie”. Ale nie taki diabel straszny jak go maluja. Jako, ze instalacja AFB3LA4 wymaga Eclipse w wersji 3.3.x, dlatego tym razem nie skorzystamy z repo.

1. Sciagamy pakiet Eclipse Europa

czlowiek@maszyna:~$ wget http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/europa/winter/eclipse-java-europa-winter-linux-gtk.tar.gz -O /tmp/eclipse-java-europa-winter-linux-gtk.tar.gz

nie jakis tam, ale ten konkretny inaczej Flex odrzuci wspolprace z inna wersja.

2. Po sciagnieciu wypakowujemy Eclipse do uprzednio przygotowanego katalogu

czlowiek@maszyna:~$ mkdir ~/Programy
czlowiek@maszyna:~$ tar xzvf /tmp/eclipse-java-europa-winter-linux-gtk.tar.gz -C ~/Programy/
czlowiek@maszyna:~$ mv ~/Programy/eclipse ~/Programy/flex

po tych manewrach mamy rozpakowany Eclipse Europa do katalogu flex w ~/Programy/

3. Sciagamy Flex Builder’a

czlowiek@maszyna:~$ wget http://download.macromedia.com/pub/labs/flex/flexbuilder_linux/flexbuilder_linux_install_a4_081408.bin -O /tmp/flexbuilder_linux_install_a4_081408.bin

4. Instalujemy Flex’a

czlowiek@maszyna:~$ chmod +x /tmp/flexbuilder_linux_install_a4_081408.bin
czlowiek@maszyna:~$ /tmp/flexbuilder_linux_install_a4_081408.bin

odpali sie instalator, ktory umozliwi instalacje softu,
Flex Installer
nastepnie
- akceptujemy licencje,
- wybieramy katalog do zainstalowania SDK /home/czlowiek/Programy/sdk/Adobe_Flex_Builder_Linux,
- wybieramy katalog uprzednio rozpakowanego Eclipse Europa /home/czlowiek/Programy/flex (jezeli wersja eclipse nie jest prawidlowa instalator zglosi blad),
- dodatkowe opcje – odznaczamy wszystko,
- Next, Next, Install
Flex Installer

5. Testujemy Flex’a

czlowiek@maszyna:~$ ~/Programy/flex/eclipse

odpali sie standardowy Eclipse, ktorego musimy “nieco” zmodyfikowac, czyli otwieramy nowa perspektywe ;)
Flex

Po tych wszystkich zabiegach, mozemy juz przystapic do programowania aplikacji we Flex’ie.

6. Hello world
Klik, klik, klik, czyli File->New->Flex Project i wypelniamy formularz,
Flex Hello world
dajemy Finish i przystepujemy do programowania aplikacji HelloWrold

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:HBox horizontalAlign="center" verticalAlign="middle" width="100%" height="100%">
		<mx:Label text="Hello world" fontSize="36" />
	</mx:HBox>
</mx:Application>

Flex Hello world
nastepnie klikamy przycisk Run i po chwili w domyslnej przegladarce uruchomi sie oczekiwana aplikacja Flashowa,
Flex Hello world
zadna wypasna ale dziala ;) .

Zobacz takze:
- Flex Builder 3 debagowanie pod Ubuntu