Přejít k navigační liště

Zdroják » Různé » Flex 4: začínáme

Flex 4: začínáme

Články Různé

V tomto seriálu článků o Flexu 4 projdeme od základů programování ve Flexu 4 – ActionScriptovém frameworku pro tvorbu RIA aplikací. Uvidíte, že programování ve Flexu je zábava a spoustu věcí výrazně zjednodušuje. V prvním díle si probereme základy ActionScriptu, Flexu a ukážeme si vytvoření aplikace zobrazující stavy z Twitteru.

S Flexem 4 jsme se již setkali v článku Jak na to: Spojení Flex 4 a PHP ve Flash Builderu 4. V tomto seriálu se budeme věnovat frameworku Flex podrobněji, a to především vlastnostem jeho čtvrté verze.

Pár slov o ActionScriptu

ActionScript je objektový jazyk, kterým se programuje pro Flash Player, a který vychází z ECMAScriptu. Je podobný JavaScriptu, Javě, C# či dalším „C-like“ jazykům (kam patří třeba i PHP), takže pro čtenáře, co některý z těchto jazyků znají (a takových je na Zdrojáku jistě naprostá většina), bude ActionScript hračka.

Nyní se nachází ActionScript ve verzi 3.0 a od svého oficiálního vzniku v roce 1998 ušel značný kus cesty. Nebudeme se zatěžovat předešlými verzemi, ale projdeme si rovnou pár ukázek syntaxe ActionScriptu na rozehřátí:

var toggled:Boolean = true; // booleovská hodnota
var x:int = 100; // definice proměnné celého čísla
var y:Number = 123.456; // definice proměnné čísla s pohyblivou desetinnou čárkou, identické s JavaScriptovým Number
var str:String = "Ahoj"; // řetězec
var arr:Array = ["prvek 1", "prvek 2"]; // dynamické pole
var arr2:Array = new Array("prvek 1", "prvek 2"); // taky pole
var vector:Vector.<Number> = [2231,5435,4350,6905]; // Vector je typové pole, v tomto případě pole celých čísel, operace nad Vectorem jsou mnohonásobně rychlejší než nad dynamickým polem, Vector je k dispozici od Flash Playeru 10.
var obj:Object = {jmeno:"Tom",prijmeni:"Krcha"}; // definice objektu
trace(obj.jmeno); // trace je funkce, která v debug módu vypíše řetězec do konzole (Console, najdete zpravidla naspodu obrazovky ve Flash Builderu)
var neco:*; // definice proměnné neznámého typu

Definice třídy

 Např. třída RozsirenePole rozšíří Array o pár funkcí:

package balicek
{
    public class RozsirenePole extends Array
    {
        // neveřejná proměnná přirozeného čísla
        private var i:uint = 123;

        // konstanta
        private const MAX:uint = 200;

        // Konstruktor
        public function RozsirenePole(...parameters)
        {
        // Volání konstruktoru rodičovské třídy
            super(parameters);
        }

        private function neverejnaFunkce():void{
        }

        public function verejnaFunkce():Array{
        }

        // tuhle funkci můžou používat všechny další sub-třídy a třída sama, jinak je privátní
        protected function chráněnáFunkce():Array{
        }

        // statická funkce přístupná jako RozsirenePole.maximalniHodnota();
        public static function maximalniHodnota():uint{
            return MAX;
        }

        // getter/setter
        private var _promenna:Number;

        public function get promenna():Number{
            return _promenna;
        }
        public function set promenna(value:Number):void{
            _promenna = value;
        }
    }
}

K dispozici máme i atributy dynamic, final, internal, native či override. Bližší informace naleznou zájemci v kapitole Statements v ActionScript 3.0 Language Reference.

Cykly

K dispozici jsou standardní cykly jako např. while, do/while, for, for each. Např:

for(var i:uint = 0;i<100;i++){
    trace(i);
}

Kompilátor mxmlc je volně k dispozici v rámci Flex SDK.

Toto byl nezbytný základ a „crash course“ ActionScriptu. Další vlastnosti ActionScriptu si ukážeme v průběhu práce.

Flex 4

Pojďme se tedy podívat na Flex.

Co je vlastně Flex? Potřebuju nějaký Flex Player

Ne, vše je Flash. Flex je knihovna pro Flash – sada ActionScriptových tříd, které použijete pro tvorbu výsledného SWF a ve finále spustíte ve Flash Playeru. Není tedy potřeba žádný Flex Player.

Flex je jednodušší a rychleji v něm složíte RIA aplikaci než v prostém Flashi. I když se zcela jistě najdou lidé, kteří s tímto názorem nebudou souhlasit, a zčásti mají pravdu. V dnešní době existuje spousta ActionScript frameworků, které tvorbu RIA ve Flashi usnadňují (BaseUI, MinimalComps…), ale ve spoustě případů narazíte na něco, co vám bude chybět.

Adobe se tedy rozhodlo vytvořit jednotný framework, který se postupem času stal open-source a má otevřený bug tracker, kde můžete vznášet připomínky na bugy i s případným návrhem na opravu. Flex v dnešní době obsahuje téměř vše pro tvorbu standardních RIA. Jeho poslední verze, Flex 4, navíc uvedla řadu podstatných novinek, které posouvají možnosti zase o kus dál. Zejména při práci s grafikou – stylování, skinování ve spojení s Flash Catalyst, ale i další výhody, které si postupně v seriálu představíme.

Flex 1

Když se bavíme o Flashi, myslíme tím vetšinou čistý ActionScript projekt vytvořený v nějakém IDE (Flash Professional, Flash Builder, FDT, IntelliJ, TextMate, Notepad) a zkompilovaný pomocí MXMLC. Hlavní výhodou je v tomto případě optimalizace – kompletní kontrola nad tím co se ve finále zkompiluje. Týká se to nejenom rychlosti, ale i velikosti výsledného souboru. Proto spousta lidí dává přednost psaní čistého ActionScriptu. (Já osobně preferuji Flex právě kvůli své lenosti a lepší teamové spolupráci, kterou Flex nabízí. – pozn. aut.) Na druhou stranu třeba zobrazení dat ze serveru a jejich editaci

uděláte ve Flexu za pár minut bez nějakých výrazných znalostí.

Základní komponenty Flexu jsou: Seznamy, tlačítka, datagridy, slidery, checkbox, combobox, video přehrávač a spousty dalších.

Pro návrh layoutu nabízí Flex kontejnery, které zjednodušují seskládání aplikace a dávají výslednému zobrazení pravidla.

Navigátory: Akordéon, ButtonBar, Taby apod.

Grafy: Zobrazení grafů je pomocí grafových komponent hračka.

Pro práci s Flexem si stáhněte a nainstalujte Flash Builder 4.Výsledný projekt se všemi příklady si můžete stáhnout zde: Flex 4 – Hello World. Importovat jej můžete přes  File -> Import Flex Project (FXP)

První aplikace: HelloWorld s bindingem

Binding je velmi užitečná vlastnost Flexu, která vám umožní v reálném čase mapování proměnných na komponenty.

Vytvoříme nový projekt: File -> New -> Flex Project. Nazveme jej HelloWorld a dáme Finish. Otevřeme si Design view a drag-and-dropneme NummericStepper z Controls do aplikace. Nastavíme v properties Id: stepper, Minimum: 100, Maximum: 200 a Step size: 10. Když zobrazíme zdroj – Source view, měli bychom tam mít tohle:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <s:NumericStepper x="10" y="10" minimum="100" maximum="200" stepSize="10" id="stepper"/>
</s:Application>

Jazyk MXML, který se při práci s Flexem hojně používá je pouhý XML zápis ActionScriptu. Jmennými prostory definují různé sady tříd, které právě používáte: s – nové Spark komponenty, mx – Halo komponenty z Flexu 3, fx – základní třídy. Později si k tomu řekneme víc, zatím zůstaneme u NumericStepperu a přidáme do aplikace pod něj ještě TextInput.

<s:Button x="10" y="45" label="Button {stepper.value}" id="btn" width="{stepper.value}" height="{stepper.value/2}"/>

Složené závorky definují binding. Když se změní hodnota NumericStepperu, projeví se v popisu tlačítka. Tuto hodnotu projevíme i do šířky a výšky. Spustíme aplikaci. Změnou hodnoty NumericStepperu nyní ovlivňujeme parametry tlačítka. Vidíme, že binding je velmi silný a ušetří nám spoustu kódu. Flex 4 navíc uvedl two-way binding – nejenom, že hodnotu propagujete někam, navíc ji můžete i přijímat.

Druhá aplikace: Two-way binding

Vytvořte v našem projektu aplikaci HelloWorld2.mxml ( File -> New -> MXML application) a vložte do ní 2 TextInputy:

    <s:TextInput x="10" y="10" id="txt1"/>
    <s:TextInput x="10" y="40" id="txt2" text="@{txt1.text}"/>

Zavináč definuje two-way binding. Když změníme hodnotu v txt1, změní se tatáž hodnota v txt2. Nově však můžeme změnit hodnotu v txt2 a ta se projeví do txt1. Tato technika výrazně zjednodušuje editaci ve formulářích. K two-way bindingu se ještě vrátíme v dalších dílech.

Třetí aplikace: Layout

Dynamický layout je další silná zbraň Flexu. U každého prvku můžete nastavit parametry left, right, top, bottom a různě je kombinovat. Jednoduchým příkladem může být např. VideoPlayer, který mění velikost podle velikosti prohlížeče.

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark">
    <s:VideoPlayer left="0" right="0" top="0" bottom="0"/>
</s:Application>

Ano. Výše uvedený kód je opravdu celý. Pokud bychom chtěli v přehrávači spustit video, stačí nastavit parametr source např. takto:

    <s:VideoPlayer source="http://www.flashrealtime.com/tuts/video/FlashCatalyst-screencast-czech.mov" left="0" right="0" top="0" bottom="0"/>

Tímto se spustí video pomocí progressive download přes HTTP.

Čtvrtá aplikace: Layout podruhé

Pro další pochopení layoutování si zkuste zkompilovat následující příklad HelloWorld4:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx">
    <s:Panel width="250" top="10" bottom="10" x="10">
    </s:Panel>
    <s:Panel left="275" right="10" top="10" height="250">
    </s:Panel>
    <s:Panel left="276" right="10" bottom="10" top="275">
    </s:Panel>
</s:Application>

Pátá aplikace: Pokročilejší layout s HGroup, VGroup a TileGroup

Pokud vám něco říká Flow layout, tak přesně o to zde jde. Prvky se budou pozicovat relativně za sebou. V případě HGroup horizontálně, VGroup vertikálně a s TileGroup  do matice. Všechny tři kontejnery dědí od Group, což je de-facto základní Canvas s absolutním pozicováním.

 <?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx">

    <s:HGroup x="10" y="10">
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
    </s:HGroup>
    
    <s:VGroup x="10" y="40">
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
    </s:VGroup>
    
    <s:TileGroup x="86" y="39" width="298" height="130">
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
        <s:Button label="Button"/>
    </s:TileGroup>
    
</s:Application>

Šestá aplikace: Script blok a Twitter timeline

Asi si celou dobu říkáte, kam zmizel slibovaný ActionScript. Nyní si vytvoříme aplikaci, která zobrazí poslední stavy z Twitter účtu. Použijeme knihovnu twitterscript. Stáhněte si poslední verzi ActionScript knihovny SWC – v tomto případe TwitterApi.1.3­.swc. Vytvořte novou aplikaci PosledniTweety.mxml. V horním menu zvolte Project -> Properties. Otevřete Flex Build Path. Přejděte na Library Path tab, klikněte na Add SWC a vyberte stažený *.swc soubor – tím nalinkujete knihovnu.

Flex 1

Stažení timeline bude tedy vypadat nějak takto: Všechny síťové operace ve Flash Playeru jsou asynchronní, tudíž přídáme EventListener – funkci, která je vyvolána, když vznikne určitá událost – v tomto případě TwitterEvent.ON_U­SER_TIMELINE_RE­SULT.

private function stahniTimeline():void
{
    var twit:Twitter = new Twitter();
    twit.addEventListener(TwitterEvent.ON_USER_TIMELINE_RESULT, stahniTimelineResult);
    twit.loadUserTimeline(txtUser.text);
}

Timeline chceme zobrazit v seznamu, proto přídáme [Bindable] proměnnou timeline a tu nabindujeme na seznam. Data se nachází v event.data – co vrací si můžeme v Debug módu zobrazit v okně Variables, když přídáme na daný řádek breakpoint. My víme, že vrací jedno pole v druhém poli – to vyjmeme pomocí pop() a převedeme na ArrayCollection.

Knihovna twitterscript vám umožňuje vytvořit kompletní Twitter klient jako je např. TweetDeck či Seesmic Desktop za velmi krátkou dobu. Pokud vám dostupní Twitter klienti nevyhovují, zkuste si vytvořit vlastního, lepšího…Výsledná aplikace PosledniTweety.mxml bude tedy vypadat takhle:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" applicationComplete="stahniTimeline()">
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
           
            import twitter.api.*;
            import twitter.api.data.*;
            import twitter.api.events.*;
           
            [Bindable]
            private var timeline:ArrayCollection;
               
            private function stahniTimeline():void
            {
                var twit:Twitter = new Twitter();
                twit.addEventListener(TwitterEvent.ON_USER_TIMELINE_RESULT, stahniTimelineResult);
                twit.loadUserTimeline(txtUser.text);
            }
           
            private function stahniTimelineResult(event:TwitterEvent):void{
                timeline = new ArrayCollection(new Array(event.data).pop());
            }
               
            private function lblFunction(item:Object):String{
                return item.createdAt+" | "+item.text;
            }
        ]]>
    </fx:Script>
   
    <s:List dataProvider="{timeline}" labelFunction="lblFunction" top="100" bottom="0" left="0" right="0"></s:List>
    <s:Button x="142" y="10" label="Stáhnout" click="stahniTimeline()"/>
    <s:TextInput x="10" y="10" id="txtUser" text="tomkrcha"/>
</s:Application>

V článku jsme si ukázali základy práce ve Flexu 4. Dalšími hezkými věcmi, které Flex 4 vývojářům RIA nabízí, jsou např. drag-and-drop, stavy, navigátory apod. Se všemi se postupně seznámíme v dalších dílech.

Komentáře

Subscribe
Upozornit na
guest
87 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Ruthion

Zatím nic, co by nešlo udělat bez proprietárních pluginů jen v Javascriptu, HTML a CSS.

Zajímalo by mne, ve kterém díle seriálu budu muset tento komentář upravit na “ … v … HTML5 …“. A také jestli bude díl, pod který bych toto napsat nemohl (a tedy, zda něco ospravedlňuje existenci Flexu a Flashe jako takového).

Pavel Šimek

Existenci Flashe jednoduše ospravedlňují ty jeho vlastnosti, které neobsahuje HTML (a to ani verze 5), CSS a JS. Předpokládám, že všichni ví, že takové vlastnosti existují. A zároveň, že asi nebudou předmětem první části zevrubného seriálu.

Ruthion

Možná takové vlastnosti existují, ale zatím jsem je neviděl nikde použité. Jeho existenci (zatím) ospravedlňuje zejména to, že některé věci umí v některých prohlížečích rychleji.
Je mi jasné, že do prvního dílu seriálu se složité věci nedávají, ale mohl by tam být uveden nějaký důvod, proč se tuto platformu vůbec učit, když pro drtivou většinu aplikací prostě není potřeba.

Pavel Šimek

Vy jste třeba nikdy neviděl „street view“ na Google mapách?

Jinak souhlasím, že flashařů není potřeba tolik jako webařů… Takže těžko uvést nějaký důvod, proč se tu platformu učit. Pro někoho může být důvod třeba právě situace na trhu práce… my jsme měli problém sehnat vývojáře flashových her… naopak na web se našli lidi snáze.

Pavel Šimek

Abyste mě nenachytal na švestkách – bitmapové operace potřebné pro to street view jdou asi i na HTML canvasu, takže to spadá do té vaší kategorii „flash je pouze rychlejší“. Dobře, pak ale určitě jste někdy viděl nějaký audio/video chat nebo hru s peer-to-peer komunikací…

Ruthion
Pavel Šimek

Nemyslím web sockets, myslím skutečné peer-to-peer.

Ruthion

Jinak s audio/video chatem musím uznat, že neviděl a nedokážu si přepis do JS představit (v současném stavu).

Ruthion

Viděl. Není to nic, co by nešlo v HTML5 s 3d (a možná i 2d) canvasem udělat pomocí javascriptu. Na IE by to jelo pomaleji (má pomalý JS a canvas se tam musí řešit oklikou), na linuxu (kde je podpora flashe tristní, zvláště na 64b systémech) rychleji. Takže i pro streetview platí, co jsem napsal – existence ospravedlněná pouze rychlostí v některých browserech.

n00b

A týpci co to budou umět naprogramovat budem počítat na prstech jedné ruky..

František Kučera

Ručně blbě. S frameworkem snadno. Pro uživatele je důležité, že mu stačí obyčejný webový prohlížeč, nepotřebuje pluginy a nemá zbytečně zatížený procesor – co je za framework na serveru ho nezajímá ani zajímat nemusí. Dá se použít třeba GWT nebo nějaký jiný z nepřeberného množství frameworků pro Javu (nebo jiné platformy).

BTW: HTML5 s tím nějak moc nesouvisí, resp. není potřeba. Dost zajímavá technologie je XForms – i když nemají podporu v prohlížeči, dají se „vyrenderovat“ do XHTML a JavaScriptu (XSLTForms, Orbeon, Chiba…). Ukázka: http://www.orbeon.com/orbeon/xforms-controls/

Ruthion

Hm, adobe air … ale to už tedy nesrovnávejme s čistě webovými technologiemi. Pokud potřebuji něco stáhnout a nainstalovat, tak to klidně mohlo být napsáno v C++, unreal enginu nebo v programovacím nástroji Petr.
Adobe air je, jestli se nemýlím, IDE, které umožňuje vytvářet DESKTOPOVÉ aplikace. Proti tomu nic nemám, někdo rád dělá v haskellu, jinému více sedí actionscript.

Kromě toho, jak je na tom flash s přístupností, poradí si s ním čtečka obrazovky ?
A co SEO, umí googlebot parsovat swf soubory ?

A když už jsme u příkladů, co dokáže holý prohlížeč bez flashe, …

Mnoho drobností …
http://www.chromeexperiments.com/

Tyto stránky NEJSOU ve flashi…
http://www.worldofmerix.com/

Hezká ukázka použití JavaScriptu, hra, která generuje nepřátele, když někdo použije službu digg:
http://blog.nihilogic.dk/2008/11/digg-attack-javascript-game.html

E-banking, ke kterému není potřeba nic instalovat
https://www.servis24.cz
E-banking v jednotném funkčním prostředí (java)
https://www.mojebanka.cz/InternetBanking/?ai=002&L=CS#

Pavel Šimek

Ne, AIR není IDE, je to runtime – zjednodušeně řečeno Flash Player běžící mimo browser.

Jinak ukázky jsou hezké, kdyby tak ještě běžely všude…

Kdyby Flash posloužil jen k tomu, že ukazuje JavaScriptu cestu (stejně jako Chrome slouží k vybuzení konkurence, aby zrychlila JavaScript), tak to bude jen dobře. A i Adobe si určitě uvědomuje, že hlavní dojnou krávu má ve vývojářských nástrojích a přepnout výsledný export ze SWF na JS bude relativně snadné… Největší škoda je podle mě v tom, že byl odmítnutý ten chystaný standard, který by JavaScript přiblížil ActionScriptu, protože současný JS je jazyk, ve kterém bych fakt nechtěl psát např. hry nebo cokoliv většího.

A co se týče SEO, ano, googlebot umí parsovat SWF, ale nepochopil jsem, k čemu je dobré indexovat aplikace a texty v nich… jako „Game Over“ nebo „Vytvořit trvalou platbu“ nebo „Chybná vstupní data“… :)

František Kučera

Moje hlavní výhrada k Flashi je to, že se jedná o uzavřený plugin – přičemž nejde ani tak o slovo „plugin“ jako o „uzavřený“. Internet by měl stát na otevřených standardech a možnosti vytvářet vlastní implementace – např. máme HTTP a různé implementace klientů i serverů – nevadí, že je na jednom konci IIS a na druhém Firefox, nebo že Apache a MSIE, prostě se díky standardu domluví. Podobně fungují SMTP, HTML, MIME atd. Flash do tohoto světa nezapadá. A nemyslím si, že by to byl nějaký zbytečný idealismus – otevřenost má praktický smysl.

Po technologické stránce je Flash samozřejmě zajímavá věc a nedivím se, že má i dost nadšených vývojářů. Ale i když přestaneme řešit jeho uzavřenost, tak jsou tu i praktické problémy – hlavně na ne-windows platformách. Kromě občasné nestability nebo přehnaného vytěžování CPU mě trápí hlavně nemožnost zadávat české znaky (nebo jiný unicode) do flashových formulářů. To prakticky brání v používání těchto aplikací v Linuxu. Chyba FP-40 je prý už opravená (po dvou letech?), ale jestli tomu tak skutečně je, se mi nepodařilo zjistit, protože pro vstup do jejich JIRy je potřeba se přihlásit (zaregistrovat se). Chápu, že psát komentáře nebo zadávat chyby nemůže každý… ale vyžadovat registraci/přih­lášení jen kvůli tomu, aby se člověk podíval v jakém stavu „bug“ je nebo si přečetl jeho popis?? Na takové technologii má stát internet, který slouží ke komunikaci všech lidí?

Pavel Šimek

„Na jednom konci IIS, na druhém Firefox“ – když tohle převedeme do světa Flashe, tak jeden konec toho řetězce je otevřený úplně stejně (servery či vývojářské nástroje produkující SWF může vytvořit kdokoliv) a jak to vypadá na té druhé straně (klient), to upřímně řečeno nevím úplně přesně (líp by asi odpověděl Tom Krcha), ale tak úplně uzavřené to asi taky nebude, když existuje třeba Gnash.

Chyba FP-40 už prý opravena je. To, že se do bugtrackeru musím registrovat, mi nepřijde divné. Je to analogické jako třeba bugtracker Mozilly, apod. ne? Prostě je to konkrétní software od konkrétní společnosti. Infrastruktura (formáty, protokoly) je ale otevřená, nebo aspoň čím dál otevřenější (viz nedávno uvolněné standardy RTMP, AMF pro komunikaci a remoting).

Ruthion

Analogické to není …
Srovnejte, bez registrace a přihlášení dostupné informace zde:

http://bugs.adobe.com/jira/browse/FP-40
a zde
https://bugzilla.mozilla.org/show_bug.cgi?id=4040

Dokážete, jakožto běžný, anonymní návštěvník, říci, jestli je odkazovaný bug vyřešen ? Něco jiného je registrace, pokud chci ohlásit bug, ale pro čtení ??

Pak se člověk diví, že existují služby jako bugmenot
http://www.bugmenot.com/view/bugs.adobe.com

Pavel Šimek

Já nevím, mě to prostě nevadí a především to je už trochu off topic. Klidně si udělejte vlastního Flash klienta s vlastním bugtrackerem, pokud se vám nelíbí tento. :) To, že ve světě Flashe existuje více alternativních vývojářských nástrojů a pouze jeden klient (nepočítáme-li ten Gnash), svědčí nejspíš o tom, že to tak drtivé většině lidí vyhovuje, jinak by tomu bylo jinak. Ostatně svět webu pomalu také směřuje k jednomu renderovacímu jádru (WebKit), nebo se pletu?

pr.rybar

> To, že ve světě Flashe existuje více alternativních vývojářských nástrojů a pouze jeden klient (nepočítáme-li ten Gnash), svědčí nejspíš o tom, že to tak drtivé většině lidí vyhovuje, jinak by tomu bylo jinak.

To ze je vo svete Flash iba jeden klient (ak nepocitame Gnash) moze svedcit aj o tom, ze drtivu vacsinu ludi Flash nezaujima.

> Ostatně svět webu pomalu také směřuje k jednomu renderovacímu jádru (WebKit)

Flash a WebKit maju rovnaky vyvojovy model? Je Adobe Flash open source a pod GPL/LGPL? Myslim ze porovnavate neporovnatelne. Na jednej strane uzavrety kod Flashu a na druhej strane otvoreny komunitny projekt WebKitu.

Pavel Šimek

Adobe Flash Player vyvíjí firma Adobe jako konvenční software. Kdyby chtěl někdo vyvíjet alternativního klienta jako open source, tak klidně může. A právě to chci říct – nikdo nechce. Stejně jako se v dnešní době nikdo nechce pustit do alternativního renderovacího jádra HTML – k tomu směřovalo moje přirovnání. Komunita vývojářů ve světě Flashe se mnohem radši upírá k užitečnější činnosti, jako je např Flex Framework, který jako open source projekt vzniká.

Samozřejmě, že Flash nezajímá tolik lidí jako web a je to tak správně. To jen v těchto diskusích je ten zájem pro mě nepochopitelně zvýšený. V záhlaví tohoto článku nebylo napsáno, že by měl zajímat 100 % čtenářů, natož že by čtenáři měli na úkor Flashe přestat používat nějakou jinou technologii. :)

František Kučera

„To, že ve světě Flashe existuje více alternativních vývojářských nástrojů a pouze jeden klient (nepočítáme-li ten Gnash), svědčí nejspíš o tom, že to tak drtivé většině lidí vyhovuje, jinak by tomu bylo jinak.“

IMHO to spíš svědčí o tom, že do května 2008 licence ke specifikaci výslovně zakazovala její použití pro vytváření přehrávačů – specifikace se směla použít jen pro vytváření nástrojů na tvorbu flashů, ne jejich přehrávání. A ani teď není bez problémů možné vytvořit svobodnou implementaci.

Situace se možná pomalu zlepšuje a jednou se třeba dočkáme toho, že Flash bude stejně svobodný jako třeba XHTML nebo JavaScript, kde existuje otevřený standard a pak řada implementací. To bude jedině dobře – ale do té doby je Flash zlo, byť někdy nutné a člověk se k němu z pragmatických důvodů uchýlí (flashové hry pro děti :-))

Pavel Šimek

No je to zajímavé, co je pro vás kritériem pro „zlo“. Pro mě to je spíš něco okolo efektivity práce, přínosů pro uživatele, atd. Myslím, že do alternativního flashového klienta se nikdo nepustí. Ale já to pro vás udělám, aspoň ho začnu psát – bude-li to stačit, aby ve vašich očích přestal být Flash zlem. ;-)

František Kučera

S tímhle přístupem se můžeme vrátit do 90. let, donutit lidi, aby používali Internet Explorer (resp. Flash), tedy jedinou implementaci. Vždyť je to přece paráda, vytvářet web pro jediný prohlížeč (resp. Flash) a nemuset se ohlížet na alternativy, ne?

Naštěstí z toho webaři vyrostli a dnes by se člověk musel stydět za web, který uživatele nutil použít jeden konkrétní prohlížeč. Flash je v tomto směru trochu pozadu, protože udělat web ve Flashi prakticky znamená, nutit uživatele, aby použil implementaci od firmy Adobe. Jasně, dá se na to kašlat, odříznout těch „pár“ uživatelů, kteří flash nemají, dá se na tom i založit byznys*… ale není to správná cesta. Stejně jako nebyla správná cesta vytvářet weby „optimalizované pro MSIE a rozlišení 800×600“, ale to se ukáže časem…

*) jak jsem psal výše, někdy se k němu člověk z pragmatických důvodů uchýlí, ale rozhodně to není nic, co by mi dělalo radost nebo něco, co bych se s nadšením učil a chtěl to používat pro svoje aplikace (člověk občas dělá věci, které nechce).

Pavel Šimek

Já nevím, jestli mi nerozumíte nebo se jen tak tváříte. Bude vám stačit, když to shrnu tak, že schvaluji otevřenost standardů, schvaluji svobodu možnosti tvorby softwaru nad těmito standardy (a pouze se nedomnívám, že by to v případě flashového klienta někdo reálně chtěl využít)? Co to má společného s MSIE, který si svého času implementoval standardy po svém, to opravdu nechápu.

František Kučera

„iPhone je kompletne uzavreny a nikomu to nevadi“

Netvrdil bych, že to nikomu nevadí… ale v případě iPhonu mám na výběr, nemusím si ho kupovat, nemusím se zajímat o jeho aplikace… a přesto si můžu telefonovat a SMSkovat s lidmi, kteří si iPhone koupili.

„ani k Internet Expoloreru nesezene zdrojaky“

Už hodně dlouho se mi nestalo, že bych narazil na stránku, která by vyžadovala IE a nutila mě ho použít. Existuje standard a řada implementací (Firefox, Opera, IE, Safari…) a mezi webaři se stalo módou (v dobrém slova smyslu) vytvářet weby, které nejsou optimalizované pro konkrétní prohlížeč, ale které fungují obecně a podle standardů. Nemám žádný problém s tím, že vedle otevřených implementací existují i uzavřené – nikdo mi ten IE totiž nenutí (alespoň dnes – ne vždy tomu tak bylo).

Kdežto na stránky, které mě nutí k použití Flashe, narážím velmi často. Je to vlastně podobná situace jako kdysi, když člověk narážel na weby „optimalizované pro MSIE“. Situace u XHTML, CSS, JS je dnes uspokojivá – ale Flash má před sebou ještě velký kus cesty, než se dotáhne na tuhle úroveň standardizace a otevřenosti.

P.S. vím, že pláču tak trochu na špatném hrobě – Adobe dělá jen svoji práci – lobovat má smysl spíš u tvůrců webu, aby publikovali obsah (např. video) i v jiných formátech a mysleli na to, že ne každý má (nebo chce mít) Flash – stejně jako si kdysi museli uvědomili, že ne každý má (nebo chce mít) Internet Explorer.

Pavel Šimek

Ne každý má (nebo chce mít) počítač, na něj bychom měli taky myslet (prý vyšel Facebook v tištěné podobě :)).

Ano, chcete-li si zahrát hru nebo prohlédnout panoramatickou fotku, musíte mít Flash. Když mi řeknete, jak srovnatelně efektivně a levně vytvořím daný obsah bez použítí Flashe, já to začnu dělat. To asi spíš bude ten správný hrob, na kterém brečet, ne?

František Kučera

Pro mne je zase čistá radost psát v Javě s EJB na straně serveru. Java FX na straně klienta dokáže moc pěkné věci – třeba tahle hra. Doufám, že v sobotu bude pod komixem místo Pacmana Dukeman a místo kokeše kafe :-D Každý prostě máme to svoje. Tak doufám, že se čtenáři touhle exhibicí pěkně baví :-) Další příklady. BTW: souhlasím s tím, že psát v JavaScriptu něco složitějšího je tak trochu peklo – web prostě není primárně platforma pro aplikace.

pr.rybar

> Zkuste si napr. tento tutorial o propojeni Flexu s databazi na serveru pres PHP. Je to cista radost http://zdr­ojak.root.cz/clan­ky/spojeni-flex-4-a-php-ve-flash-builderu-4/

Tak presne tent typ aplikacie aky je v tom tutoriali je ten, ktory by som vo Flashi nikdy nerobil. :(

Myslim ze je podstatne jednoduchsie a bez akehokolvek generovaneho kodu je vyrobit v PHP REST sluzby vracajuce data v JSON formate a klientska cast aplikacie (HTML, CSS, AJAJ, Javascript) je hracka pre niekoho, kto pozna trosku Javascript. A pozor, staci mi na to textovy editor … zadarmo!

Ten tutorial je ukazkou ako robit jednoduche veci zlozito.

Pavel Šimek

Proč zdůrazňujete, že v textovém editoru a zadarmo, když flexové aplikace se taky můžou psát v textovém editoru a kompilátor je zadarmo?

O zbytek se hádat nebudu – mám rád Flash, ale s Tomem Krchou se malinko rozcházím v tom, že tam, kde není potřeba, bych ho na web nepoužíval (různé formulářové aplikace ve Flexu dělám taky, protože nic snazšího neovládám, ale jen např. různé neveřejné administrační rozhraní, apod.). Naštěstí mě živí hry, takže tam při volbě platformy žádné dilema nemám.

pr.rybar

> Proč zdůrazňujete, že v textovém editoru a zadarmo,

Lebo v tutoriali sa pise:

„Klikneme na Generate sample PHP class.“
„V panelu Data/Services přibyla služba EmployeesService a na serveru se vygeneroval kód EmployeesServi­ce.php (ve složce services), obsahující následující funkce“

Vas textovy editor vie vygenerovat EmployeesServi­ce.php?
Skuste si prosim naprogramovat ten tutorial v textovom editore a mozno ma zacnete chapat.

Pavel Šimek

No nedivte se, že jsem vás nepochopil, když jste smíchal dohromady kritiku technologie (Flash vs. JS) s kritikou pracovního postupu (textový editor vs. placené IDE), která je obecně platná.

dc

Myslim ze to je presna poznamka. Vecsinou sa vsade povaluje kopec ukazok do flexu ako spravit jednoducheho klienta na par klikov do gridu ale toto nieje problem ani v JavaScripte, dokonca taky ExtJS moze, co sa tyka moznosti komponentov a tvorby web applikacii, smelo konkurovat (inak ten ich Designer sa asi aj inspiroval flexom). Zatial som nevidel mnoho realnych aplikacii kde by mi aj ukazali realny benefit z toho ze nasadili flex/flash (priznam sa grafika ma teraz moc nezaujima aj ked ta taha ludi). Urcite tvorba vecsieho projektu bude vo flexe asi lepsia a bude to mensi bordel ale bude mat aj svoje zaludnosti. Ale na druhu stranu taky silverlight mi pripada este vecsi chaos a divim sa ludom a spolocnostiam co to nasadzuju.

František Kučera

Panorama třeba pomocí Java Appletu. Ukázka: Luzern, CH. Chtělo by se říct: „plugin jako plugin, tak co na tom sejde?“ Rozdíl je v tom, že Java je pod GPL licencí – dostupná každému, svobodně. I styl vývoje je mnohem otevřenější a přátelštější (vs. JIRA u Adobe, ve které si člověk bez přihlášení ani nic nepřečte).

Nicméně i kdyby Flash zůstal pro hry a reklamy, nepovažoval bych to za takový problém – daleko důležitější je video. To je obsah, který by měl být dostupný co největšímu publiku, není to nic specifického, výjimečného. Video je podobný obsah jako třeba obrázek – na ty taky nepotřebujeme zvláštní proprietární software. A není to nějaký výmysl HTML5, pro video lze normálně používat značku <object/>, ta má navíc výhodu, že značky je možné do sebe zanořovat – takže můžeme mít video v různých formátech a pokud ho prohlížeč neumí přehrát, jde o úroveň níž a tam najde jiný formát nebo třeba objekt obsahující Flash nebo Java Applet, který se o vykreslení videa postará.

Význam otevřenosti si naštěstí uvědomují i takoví hráči, jako je YouTube a proto začínají i s ne-flashovými videi (zatím beta).

Pavel Šimek

Flex (tzn. kompilátor a framework) je pod MPL, takže svobodomyslným vývojářům se také nemusí zvedat žaludek. :) Otázku „přátelskosti“ bych si s dovolením ponechal subjektivnímu zhodnocení vývojářů, kteří mají zkušenosti (a pokud možno můžou i srovnávat).

František Kučera

„Flex (tzn. kompilátor a framework) je pod MPL, takže svobodomyslným vývojářům se také nemusí zvedat žaludek“

To zní jako skvělá pohádka se šťastným koncem – ale aby to někoho nezmátlo, je třeba dodat, že Flex ve výsledku běží v obyčejném flashovém pluginu a ten uzavřený je a jediná použitelná implementace je ta od Adobe. Kdyby ta situace byla obrácená, bylo by to o poznání lepší – vývojový nástroj klidně uzavřený, ale formát a prohlížeč svobodný – což by byla podobná situace, jako když někdo vytvoří grafiku v (uzavřeném) Photoshopu, ale nikoho tím neobtěžuje, protože výstup uloží do nějakého standardního formátu, pro který existuje řada (i otevřených) implementací prohlížečů.

Ruthion

Je otázka, co bude nepoužitelné, jestli video tag, nebo IE …

František Kučera

P.S. Ukázka jednoduché hry bez Flashe: Java FX.

Ruthion

A bez javy …
http://www.schillmania.com/arkanoid/arkanoid.html
A to včetně editoru úrovní a uchování Hi-score na serveru. Povšiměte si též, že byla vytvořena před r.2007 a funguje i v archaických prohlížečích bez vychytávek, které mají ty moderní.

Diakritikav vo FLAxi

Dovolim si poznamenat, ze tato chyba je davno opravena. Sam som s tym mal problem v mojej aplikacii, ale po 10 minutach hladania na webe som to opravil podla pokynov….. je mozne zadavat lubovolne znaky.
(http://manfin.rozinet.com/)

Vážně? Leda tak ve snu! Nebo v jejich Jiře, kam se nikdo bez registrace nepodívá.

Místo češtiny to stále píše paznaky:
http://disk.jabbim.cz/xkucf03@jabber.cz/flash-unicode.png

A verzi Flash pluginu mám aktuální:
http://disk.jabbim.cz/xkucf03@jabber.cz/flash-verze.png

Ad „som to opravil podla pokynov“

Což není oprava chyby té platformy, ale jen hack, workaround, náhradní řešení. A jak je vidět z těch obrázků, ani to asi nefunguje. Vím, že tenhle hack existuje (a měl by i fungovat, i když jsem to zatím nikde neviděl), ale je to principielně špatně – každý autor by totiž musel upravovat svoji aplikaci. Tu chyba by se správně měla opravit ve Flashi jako takovém a práce s unicode znaky by měla fungovat všem, aniž by se o to museli nějak snažit a „opravovat podle pokynů“ – ostatně jako to je na jiných normálních platformách. Třeba Java nebo Qt/C++.

František Kučera

Tak fajn, už tam vidím „Browse without registration“
koho bylo potřeba popohnat? :-)

Pavel Šimek

Mě tam v tom demu třeba vůbec nefungoval ten Rich Text Control (v nejnovější verzi Chromu), teprve po opakovaném reloadu jakž takž začal… Já těmhle frameworkům upřímně držím palce (Flash by klidně mohl zůstat jen na hry, nějaké aplikace s kamerou, peer-to-peer, atd.), ale nemůžu se nějak zbavit blbého pocitu z chatrných základů té „platformy“… ta spousta prťavých souborů, co se pořád stahuje, ten šílený jazyk, v kterém je to napsané… a řekněte, je to normální, abych přes aplikaci přejel myší se stisknutým tlačítkem a ono se mi to zabarvilo domodra? ;-)

František Kučera

njn, není nad nativní (a otevřené) aplikace. :-) Snažit se použít web (HTTP+HTML) pro tvorbu aplikací místo pro publikaci dokumentů je vždycky trochu krkolomné (jde to ale dře to). Flash se tohle snaží řešit – je to vlastně samostatná platforma* a flashová aplikace je vlastně tlustý klient, který s webem nemá až tak moc společného. Osobně mi trochu vadí tahle mánie cpát všechno na web (nebo alespoň do webového prohlížeče) – prostě si nemyslím, že instalovat aplikaci je zlo…

*) to, že většinou běží uvnitř nějakého prohlížeče nic neznamená, fakticky stojí vedle nich – můžu psát pro FF nebo pro Operu nebo můžu psát pro Flash – stejně jako můžu psát pro Winforms, Qt nebo GTK…

Ruthion

Instalovat a udržovat aplikaci není zlo, ale práce. A práce typicky není zadarmo a proto ta mánie …
A nutnost instalace (potenciálně nebezpečných) aplikací z internetu jen proto, abych měl přístup k informaci, kterou lze pohodlně poslat přes HTTP/HTML JE zlo.

Pavel Šimek

No a přesně tohle se snaží řešit Adobe AIR (mimochodem, AIR zahrnuje nejen Flash, ale i HTML/JS). Kdyby AIR posloužil ostatním jen jako inspirace, jak spojit výhody obou světů (usability desktopových aplikací + bezpečnost a pohodlí webových aplikací), tak to bude dobře.

František Kučera

Inspirace ostatním? :-)

Java Web Start byl uveden v roce 2001, Adobe AIR v roce 2008.

Pavel Šimek

Ano, máte pravdu, AIR není nová myšlenka, nové jsou jen některé nápady a celková orientace na webové vývojáře a designery a jejich existující znalosti… a díky tomu v něm vznikne asi víc praktických aplikací než ve Web Startu… a pak zas přijde někdo další a poučí se z toho… to je vývoj.

dc

presne, java vychadza z ineho prostredia. Bola skor tvorena z pohladu programatora nehovoriac ze zo zaciatku spory Sunu s MS javu podkopali ako aj jej orientacia prevazne na enterprise riesenia a placanie sa s GUI na desktope.
Naopak Flash vychadza prave z grafiky a od dizajnerskeho nastroja. A toto je pre
mna osobne trochu aj problem. Nezatracujem flex a podla mna ma aj buducnost ale priznam sa tak nejak sa v nom zatial stracam a stale narazam na to flashove pozadie, aj ked sa to snazi dobe flexom dost zakryt.

Pavel Šimek

Tohle je trochu mýtus – Flex se nesnaží flashové pozadí zakrýt, naopak, jakmile se dostanete k něčemu složitějšímu, musíte ho znát. Vždyť třeba událostní model je definován na flashové vrstvě, ne flexové. Proto byl Flash ve verzi 9 zgruntu překopán a mě se teď zdá jak objektový model, tak i jazyk naprosto v pořádku z pohledu programátora. Co pokulhává, je dokumentace, a určitý zmatek v produktech Adobe (Flash Pro vs. Flash Builder, komponenty …).

tomaash

Pane Krcho, Vaši snahy o přiblížení ActionScriptu a potažmo celé technologie Flash si velmi cením (už delší dobu jsem se díval po nějakém pěkném seriálu o ActionScriptu), ale i přesto z toho mám poněkud rozporuplné pocity a to ze dvou důvodů:

1. Má smysl prezentovat tuto technologii lidem, kteří si ji nemohou vyzkoušet (tím narážím na fakt, že podstatná část čtenářů patrně funguje na Linuxu, pro který Flash Builder neexistuje, nebo alespoň to tak vypadá).

2. Má smysl zabývat se technologií, která defakto duplikuje to, co umí resp. budou umět moderní prohlížeče během cca pěti let takříkajíc „od přírody“? Tím narážím na stále lepší podporu javascriptu, SVG, a HTML5, pomocí kterých je (resp. bude) možné udělat totéž co lze dnes udělat pomocí Flashe.

Nemůžu se stále zbavit pocitu, že Flash je jen jakýsi cimrmanovský krok stranou na jehož konci budeme nuceni konstatovat „tudy ne, přátelé“…

Myslím si, že skutečně užitečným počinem od firmy Adobe by bylo vývoj nějakého RIA Builderu, který by stavěl na již existujících technologiích (uznávám, že zatím to nemá smysl, neb ne všechny technologie jsou dostatečně kvalitní a rozšířené).

dc

Priznam sa ze som sa snazil preniknut viac do Flashu/Flexu ale zatial som to docasne vzdal z nedostatku motivacie a casu a momentalne mam prioritu javascript a jquery (praca).
Co mne osobne vadi na Flexe, zatial z toho „povrchneho“ pozorovania je miestami az prehnana komplexnost a x roznych ciest ako dosiahnut vysledok. Co principialne neni zle ale dost to dokaze zmiast (nieco mozem spravit cez mxml a aj cez as3 a niektore veci sa daju iba v mxml a zasa niektore iba v as3 nehovoriac o roznych nastrojoch ktore sa prelinaju). A druha vec, ktora je aj napriklad pri Silverlighte, je ten az prehanne prudky vyvoj kde verzia od verzie sa niekdy aj dost zasadne lisia v pristupoch na riesenie toho isteho problemu oproti predchadzajucej verzii.

A k tomu co sa bude dat v buducnosti s html, to je otazne ale teraz si dovolim tvrdit ze vo velkej casti pripadov moze javascriptovy framework smelo konkurovat flexu (video a animacie ale niesu uplnou podstatou RIA).

František Kučera

„optimalizovanou pro vsechny prohlizece“

Je potřeba srovnávat srovnatelné – „všechny prohlížeče“ = několik implementací od různých autorů. Zatímco „Flash“ = jediná implementace od jediného autora. Vyvíjet i pro jiné „implementace“ Flashe, jako je třeba Gnash, to už by tak snadné nebylo a vývojář by se při tom zapotil asi mnohem víc, než když má napsat webovky, které budou fungovat ve FF, Opeře, WebKitu a MSIE.

dc

no mozno to bude zniet nejak radiklane ale ta nejednoznacnost mi vadi. Netvrdim ze mxml a as3 maju mat striktne vymedzne pole posobnosti ale zasa prelinanie nieje moc dobre.Dnes uz malokto programuje vsetko sam (vecsie systemy) a je bezne pouzvanie roznych kniznic, a ked ma clovek pouzivat niekym inym napisany kod tak jeho jednoznacne pochopenie je velke plus a nemusim potom sa obavat nejakych nepredvidanych problemov.

Ja ale netvrdim ze flash/flax je zlo, mam len urcite vyhrady. Preco musite hned stupnovat vsetko do extremu? V urcitych oblastiach nema flash zatial moc konkurenciu, to je fakt ale zasa velka vecsina beznych poziadaviek na web alebo web aplikaciu sa da v pohode zvladnut aj s Javascriptom/css s rovnakym vysledkom. Nie vsetky weby potrebuju byt „vyflashovane“ preanimovane a neprehladne.

Pavel Šimek

Ale vždyť MXML a AS jedno jest. :) Když si uděláte třídu MyClass s proměnnou myProperty, můžete ji pak používat buď v AS syntaxi (procedurálně):

myClass = new MyClass();
myClass.myProperty = „abc“;

nebo v MXML syntaxi (deklarativně):

<MyClass id=„myClass“ myProperty=„abc“ />

Čili MXML není nějaký pevně daný jazyk, ale jen jiný (deklarativní) pohled na AS. Jednoznačně krok vpřed, který použily i jiné jazyky a systémy (viz Microsoft s XAML).

tomaash

Asi to vypadá tak, že jsem nějaký odpůrce Flashe, ale není to tak.

ad a) kde vznikla nějaká zkratka je naprosto irelevantní.

ad b) přiznávám, že web Adobe Labs nemám prolezlý celý, nicméně že existuje nějaká linuxová verze jsem tam (aspoň při zběžném procházení) nenašel (plugin do Eclipse je mi k ničemu, nepoužívaje eclipse :).

ad c) ano HTML5 je technologie která teprve nastupuje, zatím asi nemá smysl s ni nějak zvlášť počítat, ale jako cesta se mi to jeví zajímavější, protože standardizovaná a „otevřená“. Je docela možné, že Flash bude i nadále technologie, která bude posouvat hranice toho, co je možné s webem udělat. Mě se ale více zamlouvají standardizované a otevřené cesty.

K ostatním věcem nemám co bych dodal. Jak vidno, Adobe Vás neplatí jen tak pro nic za nic ;)

Mé dosavadní dobré zkušenosti s Flashem by se (za více jak 10 let existence této technologie) daly spočítat na prstech (prakticky mě napadají jen přehrávače multimedií na webu a hry, a ty samy o sobě příliš užitečné nejsou).

Celý můj příspevěk je pochopitelně off-topic, za který se tímto omlouvám a současně děkuji za seriál materiál k dalšímu přemýšlení a za seriál na jehož další díly se budu těšit. Holt ten Flex Builder vrazím do virtulaboxu, no :)

Pavel Šimek

Přesně tak, Flash je taková „laboratoř“ nových věcí, které se třeba časem dostanou i do webových standardů. Momentálně jsou nejzajímavější jeho komunikační schopnosti, např. peer-to-peer (proč vše hnát přes servery), v nejnovější verzi dokonce s podporou multicastu (představte si sociální web s prvky dosud známými jen z technologií jako je torrent…). Jenže to jsou všechno tak komplikované věci, že jsem skeptický k vizi jejich jednotné implementace ve všech browserech… jen blbé CSS k tomu potřebuje roky až desetiletí…

Pavel Šimek

Jinak Flash Builder pro Linux je jen ve formě pluginu pro Eclipse. Ale to je fuk, protože Flash Builder prostě rovná se Eclipse + plugin (i ve Windows). :)

frankiex

Pokud vím, tak v eclpise s pluginem oproti flash builderu není vizuální mód při návrhu UI.

JT

Ne. Samostatna verze (= plugin + Eclipse v jednom) i plugin do Eclipse jsou ve vysledku naprosto totozne.

frankiex

1. Na problém podpory linuxu, bohužel, narážím také a řeším ho spuštení Flash Builderu pod VirtualBoxem. Nedá se říct, že by Adobe na tento problém úplně kašlalo. Minulá verze (Flex Builder 3) vyšla jako plugin pro Eclipse.
Mimo to existuje Flex SDK pro linux.

2. Ano, ale předpokládáte, že za těch pomyslných pět let, bude Flash ve stejné fázi jako dnes. Napadá mě, že bych vaši výtku mohl obrátit a říct, proč se HTML5 snaží dělat to, co ve flashi už dávno je? :) Viz video tag.

Pavel Šimek

Adobe nevsází jen na svou vlastní Flash platformu. Budoucí verze Flash IDE budou umět jednoduché věci (např. bannery) kompilovat nejen do SWF, ale i do HTML 5 / JS. Konečně se tím SWF zbaví odpuzující nálepky „ta věc, ve které jsou bannery“. :) A zůstane využití jen tam, kde HTML nestačí.

Ostatně už Flash CS5 kompiluje nejen do SWF, ale i do nativního kódu iPhonu. Takže bych řekl, že „divize nástroje“ a „divize platforma“ jsou v Adobe relativně samostatné.

David Grudl

ad 1) spíš by měla otázka směřovat na „chytráka“, který vymyslel, že Zdroják nebude na http://www.zdrojak.cz ale na zdrojak.root.cz. Nenechte se tím zmást, Zdroják ani jeho čtenáři nemají s Linuxem společného o mnoho víc, než třeba čtenáři Programujte.com.

ad 2) duplikuje něco, co ostatní budou umět? Neduplikuje teda spíš HTML5? A má smysl se zabývat technologií, která možná bude za pět let umět to, co jiná technologie už uměla včera? ;)

Ruthion

S 3d kontextem snadno – postupně stahuju framy jako obrázky a použiji je jako texturu pro krychli, ve které je kamera. Otáčení kamery je trivka a ovládání nahrávání framů je také řešitelné.
S 2d contextem by to také šlo, jen pomaleji.

Co v HTML5 ale nepůjde, je zvuk.

Ruthion

Respektive, zvuk půjde, ale zatím to, pokud vím, nikde pořádně nefunguje.

Ruthion
Gebauer

Flex Builder 4 beta 2 na řádku s <s:TileGroup hlásí chybu „couldn’t resolve“. Nějaký konflikt betaverzí?

SimPod

me take hlasi tohle. google mi k tomu nic nerekl
flex 3 k tomu zase hlasi The prefix „s“ for element „s:TileGroup“ is not bound.

jsem zmaten

Honza

Znáte někdo nějaké stránky které by posloužily jako dobrý příklad proč použít FLEX?

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.

Pocta C64

Za prvopočátek své programátorské kariéry vděčím počítači Commodore 64. Tehdy jsem genialitu návrhu nemohl docenit. Dnes dokážu lehce nahlédnout pod pokličku. Chtěl bych se o to s vámi podělit a vzdát mu hold.