2009-05-01 17 views
40

Ho provato a cercare ovunque un elenco sintetico dei vantaggi e degli svantaggi dell'utilizzo di Flex vs. Flash.Flash versus Flex

Provenendo da un passato di programmazione, adoro Flex. È facile da imparare e, dato che può utilizzare classi flash, perché dovrei voler utilizzare Flash senza flex?

Flex:

Pro:

  • bene per lo sviluppo di RIA
  • offre molte opzioni user-ingresso, fuori dalla scatola
  • Costruire nel sistema di lay-outing
  • la MXML è più facile per i non programmatori
  • È possibile combinare rapidamente Componenti per creare piccole applicazioni
  • I componenti possono offrire un vantaggio in progetti di grandi dimensioni a causa della loro natura modulare .
  • possono essere sviluppate utilizzando Linux
  • ha un bel ciclo di vita dei componenti per la convalida, ecc

Contro:

  • aumenta la dimensione del vostro .swf
  • Personalizzare l'aspetto dei componenti può richiedere molto più tempo del previsto, a seconda dello stile visivo che stai cercando
  • quando scopri che è necessario un componente personalizzato che non XIST, potrebbe essere necessario tornare a Flash per fare il vero lavoro di programmazione e confezionamento della componente
  • La "flessibilità" di Flex significa che sarà letto un sacco di documentazione
  • Bugs nel framework Flex
  • È infine necessario scendere a compromessi con l'architettura del framework Flex

Flash

Pro:

  • buono per fare i film/animazioni
  • Timeline può essere più facile per i progettisti/animatori di concettualizzare
  • quando si lavora da zero, fornisce una grande quantità di controllo.
  • più facile per qualcuno con uno sfondo di programmazione
  • È possibile programmare quello che ti piace; compromessi con quadri esistenti

Contro:

  • fornisce solo input dell'utente base (casella di testo) fuori dalla scatola.
  • timeline può essere scoraggiante per i programmatori (anche se è possibile in tutta sicurezza ignorarlo)
  • sviluppo di alcuni tipi di applicazioni sarà più lento che con Flex
  • non può essere sviluppato utilizzando Linux
  • validazione dell'input utente deve
  • tutto essere gestito nel codice. Nessuna convalida integrata.
  • necessità di implementare il proprio sistema lay-outing

Si prega di correggermi se ho perso qualcosa detto finora.

risposta

17

Flash e Flex utilizzano entrambi lo stesso motore di rendering sottostante, solo con diversi front-end. Flash è più adatto per creare filmati e animazioni. Flex è migliore per lo sviluppo di applicazioni.

+7

Questo è un po 'di mele alle arance di confronto imho. In Flex non è possibile creare filmati e animazioni (timeline). Ma sia Flex che Flash ti permettono di sviluppare applicazioni. –

3

L'obiettivo è diverso. Flex è più dedicato al programmatore mentre Flash è più amichevole per Artist/web designer.

+0

Fuori dagli schemi, questo è superficialmente vero, ma le applicazioni GOOD Flex sono centrate sia nel design che nello sviluppo, proprio come le app Flash IDE. –

3

Flash è l'IDE utilizzato (generalmente) per creare animazioni e cose che funzionano bene su una timeline.

Flex funziona meglio per la creazione di applicazioni Internet che hanno interazioni più simili a un desktop.

Perché utilizzare Flash? Bene, se hai bisogno di fare qualcosa di più specificamente collegato a una timeline, ovviamente!

4

[...] perché dovrei voler utilizzare Flash senza flex?

Flex è un nuovo prodotto, mentre Flash esiste dai giorni Macromedia. Designer, animatori e la maggior parte di coloro che non sono cresciuti in una dieta di base dell'educazione alla programmazione probabilmente troveranno Flash più facile da padroneggiare rispetto alla maggior parte delle altre soluzioni simili.

+2

Flex era un prodotto macromedia ed è in circolazione da molto tempo. L'hanno avuto solo in un ridicolo prezzo "aziendale" che lo rendeva invisibile alle persone reali. Cercare di fare interazione sulla timeline in Flash è chiedere miseria, progettista o meno. –

8

Flex è una libreria di codice scritta in ActionScript3, quindi aggiunge molte funzionalità e elementi simili a librerie standard in Flash. Il rovescio della medaglia è che si tratta di un codice quantità huges che viene incluso nella tua applicazione. Se utilizzi qualsiasi Flex nella tua app, la dimensione di download del file SWF aumenta di 100 K.

Se l'applicazione dispone di un qualsiasi tipo di widget dell'interfaccia utente, è quasi necessario utilizzare Flex come Flash stesso. ha le cose più semplici come le caselle di testo. Flex ha tutta una GUI XML con layout, associazione dati e la configurazione XML ecc

farlo in Flash, si finisce per dover scrivere da cose e vinci come caselle di riepilogo ...

+1

In realtà, hai un insieme quasi uguale di componenti disponibili anche in Flash. Ma devi programmare nel codice ActionScript, non nello script in xml. –

+0

@ Niko, ci sono diversi componenti in Flex che non sono in Flash (almeno CS3 non ho combinato con CS4). Ad esempio: Canvas, HBox, ApplicatoinControlBar, Alert, RichTextEditor, Panel, Form, ecc. Ecc. –

2

vedo Flex come più di una soluzione per fare applicazioni RIA in cui è necessario sviluppare soluzioni basate su applicazioni. C'è parecchio che si ottiene subito con l'utilizzo di Flex, ma ha anche un prezzo in termini di dimensioni del file, granularità, ecc.

Se invece si sta lavorando su una soluzione totalmente personalizzata come un gioco quindi forse Flash è la strada da percorrere perché puoi iniziare fresco con una tela bianca. Molte persone usano ancora Flash perché non hanno bisogno di tutte le campane e i fischietti basati su app della piattaforma Flex.

+0

Applicazioni RIA, sportelli bancomat, tariffa APR ..: P – Anthony

0

Flash e Flex sono 2 cose completamente diverse, uno è uno strumento di progettazione con supporto per script di azioni, l'altro è un framework che ha anche script di azioni ma è costruito su MXML che è una definizione dell'interfaccia utente basata su XML "Lingua ".

+2

Non è realmente costruito intorno a MXML, MXML è davvero costruito attorno ad AS ... ogni volta che l'app viene compilata, tutto il codice MXML viene convertito in codice AS. –

+1

La percentuale di MXML in AS nelle mie applicazioni collegate al framework Flex è probabilmente 25/75 mxml/come se non di più. Il Markup è semplicemente lì come un modo conveniente per contenitori di layout. Tutto il resto vive al di fuori della vista. –

9

Dal punto di vista di un programmatore, la grande differenza tra Flash e Flex non è tanto l'IDE/l'applicazione che si utilizza per la programmazione, ma se si programma solo in ActionScript (AS) o si utilizza il framework Flex e MXML per programmare il proprio applicazioni.

Direi che ActionScript è migliore per la programmazione (se si utilizza Flash IDE o Flex IDE non è rilevante) e MXML è migliore per i non programmatori per combinare i componenti programmati in AS.

vorrei aggiungere alla tua lista di questi vantaggi/svantaggi:

Flex:

Pro:

  • Più facile per i non programmatori di entrare in sviluppo di applicazioni
  • Puoi combinare rapidamente componenti per creare piccole applicazioni
  • I componenti possono fornire un vantaggio in su larga scala progetti

Contro:

  • Personalizzare l'aspetto dei componenti può prendere un sacco più tempo del previsto, a seconda dello stile visivo che stai cercando
  • Quando si scopre è necessario un componente personalizzato che non esiste, potrebbe essere necessario tornare a Flash per eseguire il vero lavoro di programmazione e l'imballaggio del componente
  • La "flessibilità" di Flex significa che si sta leggendo un lotto della documentazione
  • Bugs nel framework Flex
  • È infine necessario scendere a compromessi con l'architettura del framework Flex

Flash (o Flex IDE in modalità progetto ActionScript):

Pro:

  • Più facile per qualcuno con uno sfondo di programmazione;)
  • Puoi programmare quello che vuoi; nessun compromesso con quadri esistenti

Contro:

  • Timeline può essere scoraggiante per i programmatori (anche se si può ignorare in tutta sicurezza it)
  • sviluppo di alcuni tipi di applicazioni sarà più lento di quello con Flex

In breve: scegli lo strumento giusto per il compito giusto.

+0

In riferimento a: "torna a Flash per eseguire la vera programmazione" Se lo fai non sono positivo funzionerebbe anche nel framework Flex? –

+1

Questo è stato un po 'vago, il mio errore. Il punto era che per componenti altamente personalizzati, il modo più conveniente è quello di creare e impacchettare il componente in Flash, quindi utilizzarlo in un'app Flex. –

2

Mi piace la libertà di Flash e la sua semplice incorporazione di risorse in Flash, un po 'più confusa da fare in Flex.

Una cosa che amo del flex è la capacità di realizzare un'applicazione fluida con il minimo sforzo. Il che richiederebbe un'eternità in Flash.

Tutto ciò che puoi fare in flex puoi fare in flash, potrebbe richiedere molto più tempo. Non puoi fare tutto in flex che puoi fare in flash però.

Flex si prende cura di tutta la programmazione dell'interfaccia utente e ti consente di concentrarti sulla logica di business, con il flash passerai la maggior parte del tempo a programmare l'interfaccia utente.

6

A mio parere, la caratteristica più importante del framework Flex è il ciclo di vita dei componenti, che fornisce un modello davvero elegante per la convalida/invalidazione delle proprietà, la dimensione dei componenti e il rendering gerarchico.

Il vantaggio per gli sviluppatori è che esso crea fasi applicative discreti per logica aziendale e rendering, evitando costose geometria & codice di rendering fino all'ultimo momento prima di disegnare una cornice.

Ecco davvero un buon presentazione, spiegando come funziona:

http://tv.adobe.com/#vi+f15384v1002

Il modello è così ben progettato che il ciclo di vita dei componenti rimane quasi del tutto invisibile durante la maggior parte dello sviluppo Flex, quando sei utilizzando i componenti e i contenitori predefiniti del framework. Hai solo bisogno di imparare il funzionamento interiore quando inizi a sviluppare i tuoi componenti.

In via di sviluppo in ambiente Flash, o in puro Actionscript, non si ottiene nulla di tutto ciò. Chiunque sviluppi applicazioni AS3 pure ha bisogno di codificare il codice molto attentamente per separare la logica di business dal rendering o subire prestazioni notevolmente ridotte.

2

È possibile sviluppare facilmente le applicazioni Flex sotto Linux, ma con Flash non è possibile.

+0

Nessun motivo per cui è necessario utilizzare il framework Flex con Linux. Compilerà direttamente il flash senza il collegamento della struttura. –

1

Un'altra soluzione che non è stata suggerita qui, sarà quella di usarli entrambi. È possibile aggiungere componenti flessibili ai filmati flash utilizzando ContainerMovieClip. E puoi aggiungere filmati flash a componenti flessibili usando SpriteVisualElement. Un'altra cosa che non è stata menzionata è stato il lay-out della tua applicazione. Saranno i professionisti della flex contro lo svantaggio del flash, perché ti sei costruito nel sistema di lay-out flessibile. Ma ancora una volta quando li usi entrambi, puoi disporre i tuoi filmati con il sistema di lay-out flessibile.

Anche flex diventa Apache top-level project. E diventa sempre più escluso dalla comunità ora.