Articoli con Tag ‘ActionScript’
Aggiornamento: Blogbabel ha chiuso – tutti i servizi, widget e plugin non sono più attivi

- Corretta label "Blogbael" in "Blogbabel" – grazie Alex per avermelo fatto notare
- Aggiunta visualizzazione Valore Attuale, Valore Massimo e Valore Minimo, questi corrispondono all’elenco mostrato sulla classifica generale, tipo:
Per rispondere a Tommaso Tessarolo che scriveva:
Perché non fai anche altri 2 antipixel uno per la classifica senza categoria e l’altro per quella senza blog commerciali. L’ideale sarebbe avere un 4 antipixel omnicomprensivo: generale, non commerciale, senza categoria + trend (up o down) sullo stile di quelli di shiny stats
Purtroppo attualmente su BlogBabel non è possibile visualizzare in modo immediato un blog in una particolare categoria. In pratica se si va sul sito di BlogBabel e si seleziona ad esempio "Solo i blog senza categoria", quello che si ottiene è una lista-paginata di Blog, dal primo al centesimo, senza tuttavia avere la possibilità di chiedere al sistema "fammi vedere undolog in che posizione risulta in questa categoria"… mentre per le metriche standard è possibile scremare per blog, per le altre si ottengono solo liste paginate. In pratica solo chi risulta tra i primi 100 sarebbe rintracciabile, ma per il centunesimo blog in poi, bisognerebbe eseguire una ricerca per tutte le pagine… cosa assai troppo "arzigogolata"!!
Dovrei contattare i responsabili di BlogBabel e chiedere l’attivazione di qualche filtro o pagine speciali realizzate appositamente per l’antipixel… cosa che tuttavia in futuro non è detto che non sia possibile
Continua...
Aggiornamento: Blogbabel ha chiuso – tutti i servizi, widget e plugin non sono più attivi
Ho fatto alcune aggiunte e migliorie all’antipixel in Flash per visualizzare il rank di BlogBabel.

Versione 1.1
Prima di tutto cliccando sull’antipixel si apre una nuova finestra del browser che – giustamente – punta al sito di BlogBabel, direttamente alla vostra pagina delle statistiche. Ho aggiunto un menu contestuale con due opzioni: il link a undolog.com e la funzione di refresh (aggiornamento) del rank.
Ultima chicca aggiunta è la facoltà di ricordarsi l’ultimo rank visualizzato (per adesso non lo prelevo da BlogBabel) cosi da mostrare uno sfondo in rosso in caso si sia persa qualche posizione

Continua...
Aggiornamento: Blogbabel ha chiuso – tutti i servizi, widget e plugin non sono più attivi
Visto che c’ero ho creato un antipixel in Flash per BlogBabel che mostra il rank!
Per utilizzarlo copiate il codice qui sotto e sostituite a [blog] l’identificativo del vostro Blog usato in BlogBabel. Per ottenere l’identificativo del vostro Blog andate su BlogBabel e visualiizate le vostre statistiche. L’url della pagina è nel formato http://it.blogbabel.com/metrics/blog/[identificativo]/, copiate la parte [identificativo] e sostituitele al codice qui sotto:
1 2 3
| <!-- Codice per path Internet Explorer -->
<script language="javascript1.2" type="text/javascript" src="http://www.undolog.com/services/bbrjs.php?blog=[blog]"></script>
<!-- Fine BlogBabel Rank --> |
OPZIONI E FUNZIONALITA’
In questa versione se cliccate sull’antipixel è possibile aggiornare il rank.
Il colore di sfondo è modificabile direttamente nel codice proposto sopra: ora è impostato a #eeeeee!
Suggerite eventuali migliorie…
Continua...
L’inserimento di oggetti (in particolare Flash Objects) all’interno delle pagine Web è diventato ultimamente un’attività spesso stressante. In altri Post abbiamo già affrontato l’argomento di come rilevare Flash ed inserirlo nelle pagine in modo appropriato. Dato che abbiamo parlato di tecniche Unobtrusive, vi segnalo due noti script in grado di rilevare (ed eventualmente installare) ed inserire oggetti Flash in una pagina, in modo assai afficiente e poco intrusivo: SWFObject e UFO.
Entrambi gli script offrono in sostanza le stesse caratteristiche e un funzionamento identico. L’approccio è quello che sostituire tramite Javascript un determinato TAG con il contenuto Flash. Come sappiamo questo procedimento elimina il problema dell’attivazione dell’oggetto Flash imposto da Internet Explorer, tuttavia implica che Javascript sia attivato sul target-browser.
Entrambi gli script non fanno uso di librerie esterne, come Prototype.js ad esempio. La differenza più importante tra i due è che SWFObject va chiamato quando il TAG da sostituire è già stato caricato nella pagina, modalità non propriamente Unobtrusive. Ecco uno stralcio di codice che mostra la sequenza di chiamata:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <div id="flashcontent">
<strong>You need to upgrade your Flash Player </strong>
This is replaced by the Flash content.
Place your alternate content here and users without the Flash plugin or with
Javascript turned off will see this. Content here allows you to leave out <code inline="true">noscript </code>
tags. Include a link to <a href="swfobject.html?detectflash=false">bypass the detection </a> if you wish.
</div>
<script type="text/javascript">
// < ![CDATA[
var so = new SWFObject("so_tester.swf", "sotester", "300", "300", "9", "#FF6600");
so.addVariable("flashVarText", "this is passed in via FlashVars for example only"); // this line is optional, but this example uses the variable and displays this text inside the flash movie
so.write("flashcontent");
// ]]>
</script> |
UFO, invece, permette un’approccio decisamente più in linea con i classici script Unobtrusive. La sostituzione del TAG avviene in modalità trasparente, senza abbligare sequenze di caricamento, come mostrato nell’esempio qui sotto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <head>
<title>Unobtrusive Flash Objects (UFO) | Sample page </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="ufo.js"></script>
<script type="text/javascript">
var FO = { movie:"test8.swf", width:"300", height:"120", majorversion:"12", build:"0", xi:"true" };
UFO.create(FO, "ufoDemo");
</script>
</head>
<body>
<div id="ufoDemo">
<p>Replacement content </p>
<p><a href="http://www.macromedia.com/go/getflashplayer"><img src="http://www.macromedia.com/images/shared/download_buttons/get_flash_player.gif" alt="Get macromedia Flash Player" style="border: none;" /></a></p>
</div>
</body> |
Nel codice sorgente dello script di UFO, infatti, si nota immediatamente l’uso – più appropriato – di un evento che attente il caricamento completo della pagina prima di eseguire la sostituizione; approccio quindi estremamente più consono a script non intrusivi.
Continua...
Tra le varie librerie – o insieme di librerie (veri e propri framework), dedicate ad Ajax, estensione dell’interfaccia HTML e Web2.0 che mi è capitato di vedere, Ext è sicuramente degno di nota. Il sito Web e la documentazione sono ben fatti e organizzati, inoltre i demo online sono da non perdere. L’interfaccia grafica, la compatibilità con Prototype e Scriptaculous e l’impletazione dei Yahoo Utils, ne fanno un sistema quantomeno interessante! Attenzione però alla licenza! Nonostante si presenti come open source e gratuito, per usi personali, richiede un pagamento per potenziarne l’uso e l’assistenza. Quest’ultima, infatti, non è mai da sottovalutare in framework di una certa complessità.
Per la documentazione e i demo clicca qui.
In particolare cito questo sistema, che sto ancora analizzando in dettaglio, in quanto è stato utilizzato per creare Fresh Feed Reader, una delle applicazioni di esempio fornite con la versione Alpha di Adobe Apollo (vedi Adobe Apollo Alpha Release). Fresh, quindi, è un duplice esempio dell’uso di Apollo, che dimostra le sue capacità di sfruttare HTML e Javascript al massimo. Fresh, infatti, non è un’applicazione Apollo pura, ma usa il framework Ext- e quindi Javascript e HTML – all’interno del motore Apollo! Fantastico!!
Continua...
Oramai è solo questione di tempo, Mozilla ha aperto la strada con Javascript 1.7. Comunque sia, è chiaro che l’attuale Javascript ha delle limitazioni. Per esempio non lo si può proteggere da un Reverse Engineering (vedi Reverse Engineering: i compressori di codice); possiamo rendere la vita difficile a chi vuole scrutare il nostro codice, ma impedirlo è quanto mai improbabile.
L’ECMA su cui è basato l’attuale Javascript lascia a desiderare. Chi viene da Java, C++ o ActioneScript 3.0, si trova notevolmente a disagio a trattare le variabili senza specificarne il tipo.
La struttura ad oggetti è anch’essa primitiva, con varie differenze di implementazione (che andranno ad aumentare) nelle diverse versioni dei browser. Librerie come Prototype sono state ideate proprio per superare alcuni limiti di estensione del DOM, oltre che implementare in modo efficiente e cross browser Ajax (XMLHttpRequest).
Consiglio, per mantenersi informati, di seguire l’evoluzione Mozilla/Adobe/ActionScript su: ECMAScript 4
Sulla documentazione di Javascript 1.7 vedi: New in JavaScript 1.7
NOTA: Rilasciato FireFox 2.0.0.3
Continua...
Finalmente Adobe ha rilasciato la versione Alpha di Apollo. Siamo ancora lontani dalla versione finale, tuttavia è possibile verificare alcune delle sue funzionalità grazie ai Demo delle applicazioni (file .air) proposte online. L’installazione (Apollo runtime) di questa Alpha pesa circa 6Mb – per Windows. I Demo (Apollo sample applications) non arrivano a pesare nemmeno 600Kb. Dopo aver installato il runtime di Apollo nulla sembrerà cambiato sul vostro PC (non viene aggiunto nessun link sul desktop o sulla barra delle applicazioni), nonostante abbiate installato – di fatto – il nuovo browser di Adobe! Vedi Web2.0: Adobe ci prova con Apollo?
Continua...
Scegliere la tecnologia da usare nello sviluppo di una Web Application è di vitale importanza, per non ritrovarsi nei guai subito dopo. Il tipo di Web Application, le sue caratteristiche di funzionamento, sono il primo punto da prendere in considerazione per poter scegliere il FrameWork e le tecnologie correlate.
Ho spesso discusso sull’efficacia di script Javascript nei confronti di tecnologie diverse come Adobe Flash o Java. Tuttavia è bene sottolineare un aspetto importante spesso sottovalutato: l’accesso al DOM. Javascript, in questo caso, è il candidato (per non dire il solo) prediletto per questo tipo di operazione.
Strumenti con Snap, ad esempio, funzionano su un semplicissimo meccanismo: quando la pagina HTML è caricata (e dopo aver inserito il caricamento dello script Javascript) viene eseguita una scansione della pagina HTML e aggiunto un nuovo codice in punti particolari. Nel caso specifico di Snap vengono identificati tutti i link a pagine esterne (o interne nella configurazione dell’ultimo rilascio), i TAG <A> per indenderci. Questi vengono modificati in modo tale che al passaggio del mouse si apra una finestra di anterpima del link (vedi questo stesso Blog per un esempio).
Non solo Snap ma molti altri script Javascript fanno praticamente la stessa cosa. Ultimamente questa tecnica si è largamente diffusa grazie alla libreria Prototype, che mette a disposizione tutta una serie di metodi (come il famoso $ o doppio-dollaro $$ – vedi Prototype: l’uso del doppio dollaro ($$)) sia per rintracciare che modificare – al volo – gli elementi di una pagina HTML.
Muoversi all’interno del DOM HTML è dunque compito specifico di Javascript. Storicamente, tra l’altro, Javascript fu introdotto proprio per leggere e scrivere i contenuti di una pagina HTML.
Se ad esempio volessimo fare alcune modifiche ad una pagina HTML tramite Adobe Flash, ci aggorgeremmo – o presto o tardi – di essere costretti ad invocare una funzione Javascript. Il nuovo ActionScript 3.0, ad esempio, mette a disposizione una classe (ExternalInterface) adatta a tale scopo. Una volta (nelle precedenti versioni di ActionScript) si usava il comando getURL() – oggi sostituita dalla migliore flash.net.navigateToURL() – o fscommad() per chiamare una funzione Javascript:
1
| getURL("javascript:miaFunzione()"); |
Inoltre:
The ExternalInterface class is the External API, an application programming interface that enables straightforward communication between ActionScript and the Flash Player container; for example, an HTML page with JavaScript, or a desktop application with Flash Player embedded.
Notate quel “desktop application” che tanto ricorda Apollo!
Oggi, grazie a ExternalInterface, è possibile invocare una funzione Javascript in modo quantomeno più pulito (questa classe permette una gestione notevolmente più efficace rispetto a getURL(), come ad esempio il passaggio di parametri):
1 2 3 4 5 6
| /* calls the external function "addNumbers"
passing two parameters, and assigning that function's result
to the variable "result" */
var param1 :uint = 3;
var param2 :uint = 7;
var result :uint = ExternalInterface.call("addNumbers", param1 , param2 ); |
1 2 3 4 5 6
| <script><!--
// adds two numbers, and sends the result back to ActionScript
function addNumbers(num1, num2) {
return (num1 + num2);
}
// --></script> |
Cosa possiamo concludere quindi? Tra tutti i vari framework e librerie disponibili l’analisi iniziale del progetto che si vuole realizzare rimane di fondamentale importanza. Sbagliare questa fase può compromettere seriamente le successive fasi di qualsiasi progetto Web2.0. Javascript, quindi, vince su tutti quando si deve interagire con il DOM.
Continua...
Papervision3D è un motore 3D estremamente performante per Adobe Flash 8 e 9. Le sue caratteristiche sono davvero impressionanti. Grazie all’estrema velocità di esecuzione di Flash sono stati possibili effetti di texture mapping davvero notevoli. Dal Blog ufficiale è possibile vedere le demo davvero eccezionali. Inoltre è disponibile un Videogame da provare.
Continua...
As3 Crypto Framework 1.1 è una libreria scritta in ActionScript 3 che permette di applicare i più comuni algoritmi di crittaggio, come:
- Public Key Encryption: RSA (partial. encryption only.)
- Secret Key Encryption: AES, DES, 3DES, BlowFish, XTEA, RC4
- Confidentiality Modes: ECB, CBC, CFB, CFB8, OFB, CTR
- Hashing Algorithms: MD5, SHA-1, SHA-224, SHA-256
- Paddings available: PKCS#5, PKCS#1
- Other Useful Stuff: HMAC, Random
La libreria mette a disposizione tutta una serie di classi per poter applicare gli algoritmi di crittaggio. Viene data in licenza BSD, visto che parte del sorgente proviene da codici Java, C e Javascript. Sul sito si possono trovare ulteriori informazioni, i sorgenti e i binari.
Continua...
Ultimi Commenti
Giovambattista Fazioli: @Nik: Sono contento! In bocca al lupo dunque!!
Nik: Lunedì ho l’esame di informatica su java, grazie mi sei stato utilissimo, il libro che ho era poco chiaro...
Marco: Ti ringrazio moltissimo, mi hai illuminato
ho risolto impostando [cc_objc] //OptionViewController.m -...
Giovambattista Fazioli: @Marco: Ti consiglio un approccio credo più corretto. Se hai eseguito il subclass del tab...
luigi: molto chiaro e semplice devo ammettere che anche scrivendo da un pà difficilmente uso delegati creati da...