PDA

View Full Version : [AS 3.0 - Flash] Aiuto, piccolo dubbio!!


tomino87
12-05-2010, 12:12
Ciao a tutti, recentemente ho iniziato a "studiare" un pò AJAX, volendo sviluppare un gioco multiutente in tempo reale...
Poi ho pensato una cosa: siccome javascript non lo conosco molto bene (e a dir la verità non mi sta nemmeno molto simpatico - i motivi sono quelli per cui di solito si tende ad evitare l' uso di javascript, se possibile), ma invece conosco meglio ActionScript 3.0, mi chiedevo:

c' è un modo per ottenere le stesse funzionalità di ajax all' interno di un'applicazione flash? Non so.... un modo nativo (di cui non sono a conoscenza...) oppure un "trick".

Io ad esempio pensavo: facendo delle richieste asincrone che partono dall' applicazione (magari attraverso l' uso di un timer), per ottenere risposte XML da php (questo era il linguaggio lato server che pensavo di utilizzare)... si ottiene lo stesso risultato oppure no? Io credo di no.... se no sarebbe troppo semplice - e probabilmente non ci si sarebbe inventati ajax :D

Beh, chiunque possa dare una risposta utile è ben accetto... vorrei tanto risolvermi questo dubbio che ho da qualche giorno..

Grazie in anticipo!!

Piero

MaxArt
12-05-2010, 16:50
Poi ho pensato una cosa: siccome javascript non lo conosco molto bene (e a dir la verità non mi sta nemmeno molto simpatico - i motivi sono quelli per cui di solito si tende ad evitare l' uso di javascript, se possibile)E quali sarebbero? :wtf:

Comunque sì, non conosco (ancora) bene l'ActionScript ma di sicuro si possono inviare richieste asincrone, quindi quello che vuoi ottenere si può fare.
L'alternativa consiste proprio per permettere di comunicare tra oggetto Flash e Javascript e demandare la richiesta al JS.

Vorrei anche sapere perché non ti sta "simpatico" il JS visto che è un dialetto dell'ECMAScript esattamente come ActionScript.

sarebbe troppo semplice - e probabilmente non ci si sarebbe inventati ajax :DSeee, buonanotte... E tutti avrebbero dovuto mettere un oggetto Flash per una semplice richiesta asincrona? :p
AJAX è stato inventato da Microsoft alla fine degli anni '90 (anche se non con questo nome) proprio per evitare queste cose.

tomino87
12-05-2010, 23:38
Vorrei anche sapere perché non ti sta "simpatico" il JS


Non ho detto che non mi sta simpatico il linguaggio in sè, lo so che è simile ad as... i principali motivi per cui non mi va molto a genio sono:

- è interpretato, non è un "vero" linguaggio di programmazione (lo so, nemmeno as lo è... ma javascript lo è sicuramente di meno :D)
- può essere disabilitato nel browser di chi naviga (anche se oggi solo gli sfigati lo disabilitano...).
- ultima ragione, quella più importante, è che lo stesso codice può (e dire "può" vuol dire essere buoni nei confronti di javascript) avere comportamenti diversi su browser diversi, quindi questo complica alquanto la vita dello sviluppatore.


AJAX è stato inventato da Microsoft alla fine degli anni '90 (anche se non con questo nome) proprio per evitare queste cose.


Evidentemente so ancora molto poco su Ajax ;)

MaxArt
12-05-2010, 23:58
- è interpretato, non è un "vero" linguaggio di programmazione (lo so, nemmeno as lo è... ma javascript lo è sicuramente di meno :D)
- può essere disabilitato nel browser di chi naviga (anche se oggi solo gli sfigati lo disabilitano...).
- ultima ragione, quella più importante, è che lo stesso codice può (e dire "può" vuol dire essere buoni nei confronti di javascript) avere comportamenti diversi su browser diversi, quindi questo complica alquanto la vita dello sviluppatore.Ah, ok, credevo che fosse una motivazione "a pelle" sulla filosofia che sta dietro al JavaScript (poteva anche darsi, eh). Personalmente trovo divertenti tutti i linguaggi di programmazione (a parte quelli posizionali che per me sono proprio anacronistici nel 2010... non me ne voglia il Python).
Le tue motivazioni sono corrette, a parte che mi hai dato dello sfigato con la seconda (:asd:), e quindi comprendo il tuo punto di vista. Giusto un paio di appunti:
- i linguaggi interpretati devi sempre considerarli comunque come linguaggi, non farti ingannare. L'AS credo sia qualcosa di più di intepretato, forse è un semicompilato tipo il Java e quindi può godere di diverse ottimizzazioni che il JS non può avere.
- il blocco del JS può essere risolto con un intervento del tipo: "O metti JS, o non vedi questo sito". Forse è antipatico, ma efficace.
- la differenza tra interpreti JS dei vari browser è in effetti un punto dolente, ma tutto sommato si riduce a due casi: IE e gli altri. Per fare le cose più semplici, il codice è comune. Per diverse cose considerate "avanzate", bastano piccoli accorgimenti per rendere il codice compatibile con entrambi i browser. Invece ci sono altre cose che hanno proprio bisogno di lavoro...

Ad esempio, io stesso oggi sono impazzito (ed ancora non ho risolto) proprio dietro ad una richiesta AJAX che su IE va benissimo, mentre su Firefox e Chrome raggiunge il readyState = 4 ma lo status rimane 0 (???) e responseText è vuoto.

Evidentemente so ancora molto poco su Ajax ;)Anche io mi ci sto avvicinando ora. Non sembra complicato, ma ci sono 'sti problemacci che mi lasciano spiazzato...

tomino87
13-05-2010, 09:57
Anche io mi ci sto avvicinando ora. Non sembra complicato


In effetti nemmeno a me è sembrato troppo complicato: speriamo che continui ad esserlo :).

Alla fine ho deciso di intraprendere la strada ajax con javascript, utilizzando come linguaggio di backend sul server il php: per il momento si riescono a fare belle cose.

Cmq non prendertela per la storia dello "sfigato": la mia non era un' affermazione in senso cattivo :D , era solo un modo un pò forte per dire che di solito anni fa qualcuno disabilitava javascript sul browser soprattutto perchè magari aveva un pc un pò vecchiotto e quindi javascript lo avrebbe rallentato (o per motivi simili), mentre oggi questi problemi (in teoria) non ce li ha più quasi nessuno: non è facile trovare qualcuno che abbia js disabilitato - però si sa, quando si sviluppano siti web se si vuole fare le cose fatte bene bisogna pensare a "tutti".... ma in questo caso se utilizzo ajax, non ho scelta: chi non ha js si attacca :p

MaxArt
13-05-2010, 10:49
Io JS lo disabilito per la pubblicità, mica per altro :O
Per me non esiste che se muovo il mouse mi si apre una finestrella in mezzo alla pagina... ecchecchezz!

tomino87
13-05-2010, 11:14
hahaha sottoscrivo pienamente :D maledette pubblicità...

tomino87
16-05-2010, 11:40
Però, scherzi a parte... mi piacerebbe veramente sapere come inviare richieste asincrone tipo ajax con actionscript (un giorno mi tornerà sicuramente utile)...

Ho provato utilizzando la tecnica con la quale di solito si caricano le immagini o gli sfw esterni, richiedendo invece l'url di uno script php che come risultato restituiva un xml, ma niente da fare: alla prima richiesta mi carica l' xml senza problemi, alla seconda e alle successive l'xml rimane sempre lo stesso (forse perchè rimane in memoria?), anche se ho cambiato l' output dello script...

Nessuno sa dirmi come si fa quindi?? Attendo risposte...

akfhalfhadsòkadjasdasd
16-05-2010, 12:54
puoi usare json anche in action script e usare quello per mandare oggetti/richieste al server.. e viceversa.

decidendo la piattaforma da usare sul server vedi come gestire il parsing, per molte ci sono api apposite.

MaxArt
16-05-2010, 13:22
Ho provato utilizzando la tecnica con la quale di solito si caricano le immagini o gli sfw esterni, richiedendo invece l'url di uno script php che come risultato restituiva un xml, ma niente da fare: alla prima richiesta mi carica l' xml senza problemi, alla seconda e alle successive l'xml rimane sempre lo stesso (forse perchè rimane in memoria?), anche se ho cambiato l' output dello script...Esatto, l'output è in cache. Hint: usa gli header corretti.

tomino87
16-05-2010, 13:38
puoi usare json anche in action script e usare quello per mandare oggetti/richieste al server.. e viceversa.

decidendo la piattaforma da usare sul server vedi come gestire il parsing, per molte ci sono api apposite.

json... il nome mi è famigliare: dovrei studiarmi un pò anche questo :D.
A tal proposito, già che ci sono chiedo un consiglio: qualche risorsa valida in internet? So che c'è qualcosa sul sito html.it (da cui ho letto già anche molti altri argomenti e mi è sembrato valido...) ... può andare bene? Altri suggerimenti?

Grazie mille,
Piero

MaxArt
16-05-2010, 13:47
json... il nome mi è famigliare: dovrei studiarmi un pò anche questo :D.È solo un modo di mandare dati in modo che siano subito interpretabili da JavaScript, ma anche ActionScript non dovrebbe avere problemi.
Ad esempio, al posto di un XML del tipo:
<?xml bla bla>
<root>
<ciao><![CDATA[pippo]]></ciao>
</root>
hai una cosa del tipo
{
"ciao": "pippo"
}
In entrambi i casi hai degli strumenti nativi per l'esplorazione dei dati ricevuti, solo che per il JSON sono quelli più comuni e meglio implementati nel motore di script.

A tal proposito, già che ci sono chiedo un consiglio: qualche risorsa valida in internet? So che c'è qualcosa sul sito html.it (da cui ho letto già anche molti altri argomenti e mi è sembrato valido...) ... può andare bene? Altri suggerimenti?Ma per cosa?

anonimizzato
16-05-2010, 13:51
Non ho detto che non mi sta simpatico il linguaggio in sè, lo so che è simile ad as... i principali motivi per cui non mi va molto a genio sono:

- è interpretato, non è un "vero" linguaggio di programmazione (lo so, nemmeno as lo è... ma javascript lo è sicuramente di meno :D)


Definiscimi un "vero" linguaggio di programmazione.


- può essere disabilitato nel browser di chi naviga

Non è un problema del linguaggio in sè.

(anche se oggi solo gli sfigati lo disabilitano...).

Oppure reti interne con client blindati per policy aziendale


- ultima ragione, quella più importante, è che lo stesso codice può (e dire "può" vuol dire essere buoni nei confronti di javascript) avere comportamenti diversi su browser diversi, quindi questo complica alquanto la vita dello sviluppatore.

Non è il codice che ha comportamenti diversi, sono i vari browser che differiscono nell'interpretazione del codice.
Javascript 1.5 deriva da ECMAScript ed è uno Standard ISO.

cionci
16-05-2010, 14:06
L'interpretazione del codice non è diversa fra i browser, quello che differisce è l'interfaccia fra il linguaggio e la pagina web o il browser.

MaxArt
17-05-2010, 00:01
Non è un problema del linguaggio in sè.Insomma... :stordita:
E' una cosa strana del web che si possa "eseguire un programma" (cioè, visualizzare una pagina web) potendo scegliere quali parti di codice eseguire e quali no :D

Comunque anche il Flash può essere disabilitato, quindi non fa differenza :)

Non è il codice che ha comportamenti diversi, sono i vari browser che differiscono nell'interpretazione del codice.
Javascript 1.5 deriva da ECMAScript ed è uno Standard ISO.L'interpretazione del codice non è diversa fra i browser, quello che differisce è l'interfaccia fra il linguaggio e la pagina web o il browser.Ammazza che pignoli :asd:
Comunque ci sono un paio di casi in cui è proprio l'*interpretazione* del browser a differire.
Uno dei più importanti riguarda i fogli di stile e gli elementi dell'array document.styleSheets: se ho una regola di stile del tipo
h1, h2 {font-weight: bold;}
IE lo vedrà come due regole distinte (una per h1 e una per h2), mentre Firefox come una sola.

cionci
17-05-2010, 09:01
Ma cosa c'entra CSS con JavaScript ?
Non è essere pignoli, c'è una bella differenza ;)

MaxArt
17-05-2010, 10:33
Ma cosa c'entra CSS con JavaScript ?Scherzi? :stordita:
Il JS ha nativamente il supporto ai fogli di stile, e ci mancherebbe altro perché è un linguaggio che serve in primo luogo alla manipolazione del DOM.

Comunque dicevo "pignolo" perché se si deve fare una critica ai browser allora è giusto essere precisi, ma per indicare un problema noto e stranoto ci si è capito benissimo :)

cionci
17-05-2010, 10:35
Scherzi? :stordita:
Il JS ha nativamente il supporto ai fogli di stile, e ci mancherebbe altro perché è un linguaggio che serve in primo luogo alla manipolazione del DOM.

E' sempre un problema del DOM, non di JavaScript ;)

MaxArt
17-05-2010, 14:53
E' sempre un problema del DOM, non di JavaScript ;)Non fa molta differenza. JavaScript "vive" sul DOM, che è nato in virtù del JavaScript.

cionci
17-05-2010, 15:04
Non fa molta differenza. JavaScript "vive" sul DOM, che è nato in virtù del JavaScript.
Sono cose diverse... Il DOM segue lo standard W3C. Il DOM esiste indipendentemente da JavaScript.

MaxArt
17-05-2010, 15:50
Sono cose diverse... Il DOM segue lo standard W3C. Il DOM esiste indipendentemente da JavaScript.Vabbé, in teoria anche JavaScript segue uno standard.
Comunque ho capito quel che vuoi dire, cioè che la sintassi del linguaggio è uguale per tutti i motori visti finora. Questo è quasi vero, ma nel motore di IE c'è la "compilazione condizionale" che è assente negli altri motori.
http://en.wikipedia.org/wiki/Conditional_comment#Conditional_Comment_in_JScript
Ok, è una fesseria, però la differenza c'è! :D

tomino87
17-05-2010, 17:53
wow... a quanto pare ho scatenato una guerra filosofica!! :D :D