Catégorie «Flash»


ActionScript 3.0: public, protégé, privé, interne et

Avec AS3 ont introduit de nouvelles «instructions» pour définir les propriétés et méthodes (public ou privé). si comportava in AS2 come ora si comporta protected , in AS3 private è davvero “privata” !) proprio a causa dell'introduzione di una sintassi più OO rispetto alle precedenti versioni. Certains, comme private - déjà présent dans AS2 - changement de comportement ( private comportés en AS2 se comporte comme aujourd'hui protected en AS3 private est réellement «privé»!) juste à cause de l'introduction d'une syntaxe OO que les versions précédentes . Mieux contour, puis, à partir du «public» au plus «privé»:

  • publique
    tout le monde peut y accéder
  • protégée
    vous pouvez accéder à la classe parent et les sous-classes
  • Privé
    seule la classe qui définit
  • Interne
    que dans le même package

Suite ...

Très court extrait: cutString ()

Pratique et rapide! Avec les valeurs Number d'ActionScript, par exemple, est une aide indispensable à la «imprimer» sur l'écran.

1
2
3
4
5
6
7
/ *
** @ Name: cutString ()
** Description @: Couper une chaîne pour n caractères
* /
cutString ( s : String , v : uint = 4 ) : String { cutString protégée fonction (s: cordes , v: uint = 4): cordes {
s . length > v ) ? s . substr ( 0 , v ) : s ) ; retour ((longueur s.> v) s. substr (0, v):? s);
}

Souvent je l'utilise aussi dans sub() et _s()

Suite ...

Flash CS3: Créez un effet réflexe sur tout MovieClip

Profitant d'une caractéristique remarquable d'ActionScript 3.0 (voir ActionScript 3.0, tous avec le nouvel opérateur ), j'ai créé une classe de ReflexMe capable de générer un effet de "réflexion" sur n'importe quel MovieClip présents dans la bibliothèque.

Chargement Flash ...

La source fait partie du paquet undolibrary - GoogleCode de cela - mais si vous voulez vous pouvez télécharger le fichier unique ReflexMe.as .

Suite ...

Effets sur l'image bitmap avec perlinNoise ()

La classe BitmapData vous permet d'appliquer facilement des effets utiles à des fins diverses. Nous avons déjà vu comment créer un "TV brouillard» avec quelques lignes de code ( Flash CS3 pour créer une télévision effet de brouillard en 1 seconde ). Maintenant, nous allons faire face à un autre effet "spectaculaire" qui, comme nous le verrons plus tard, permet la création d'effets visuels intéressants, comme dans l'exemple illustré ci-dessous: les paramètres variés pour observer les différents effets, en cliquant avec la souris sur l'image générée Cela peut être déplacé.

Chargement Flash ...

A cette occasion, j'ai également ajouté une nouvelle composante simple (à cocher) dans Undolibrary ! Alors mettez à jour votre dépôt SVN. La source est disponible ici: MapEffect.zip

Suite ...

Le module de calcul

Le «module» est l'un des aritmentiche disponible sur presque tous les langages de programmation (Je l'ai utilisé la première fois avec la base de Commodore 64) . Peut apparaître comme un opérateur simple, comme dans le cas d'ActionScript ou JavaScript, qui utilisent toutes deux le caractère "pour cent" (b%), ou comme une méthode ou une instruction. Pour les développeurs peuvent être utiles dans des contextes apparemment différents. Gskinner parlé récemment, montrant quelques exemples classiques mais intéressants.

Dit simplement, l'opération renvoie deux nombres forment le reste de leur division. Pour être complet, nous disons que le fonctionnement du module est un sujet très vaste, dont j'ai discuté dans le cryptage RSA ! Cette fois, cependant, ne parle pas des codes ou des chiffres, mais des choses utiles beaucoup plus simple.

Divisible par alternance ...

La première utilisation, nous pouvons rendre le fonctionnement de ce module est de déterminer si un nombre est divisible par un nombre B! Si le risultatto d'un b% (% je vais utiliser ici la notation pour indiquer le fonctionnement du module) est nul, a est divisible par b. Je me souviens quand j'ai eu à faire à un problème que je ne connaissais pas le fonctionnement du module. Sur le Commodore 64 j'avais besoin de savoir si un nombre est divisible par 2. A l'époque j'ai utilisé cette syntaxe (j'ai trouvé le code de origionale - année 1983):

1
2
3
10 INPUT A
12 B = A / 2: si B = INT (B) THEN PRINT "OK LE NOMBRE« A »ET« EQUAL »: GOTO 10
14 print "Le nombre" A "ET" bizarre ": GOTO 10

La base du Commodore 64, cependant, n'ont pas le fonctionnement du module - au moins que je me souviens!

Fondamentalement exactement ce que je faisais que par sa nature rend le fonctionnement du module: 2 vérifié que la division avait pas de repos, dans ce cas, vérifiez que le résultat ne contient pas de décimal ( IF B = INT(B) )! Si l'opération de division est égal à son maximum, puis le nombre est égal!

Si a avoir notre valeur à tester, la même chose peut être résolu par:

1
2
3
a % 2 ) == 0 ) { if ((2%) == 0) {
/ / Même
}

Ou, pour 3, par:

1
2
3
a % 3 ) == 0 ) { if ((a% 3) == 0) {
/ / Divisible par 3
}

Petite note: grâce à la piste si vous avez à faire avec les puissances de 2 annche il un moyen plus rapide pour vérifier si un nombre est pair ou impair. En notation binaire, en fait, les nombres sont tous égaux à zéro le premier bit! Ainsi, en utilisant les opérateurs logiques, vous pouvez savoir si un nombre est impair ou même simplement «protestant» le premier bit:

1
2
3
! ( a & 1 ) ) { if ((a + 1)) {
/ / Même
}

À l'Assemblée, par exemple, ce n'est du pain et du beurre! Il est encore plus immédiate et simple (le Motorola 68020, par exemple, avait une instruction BTST que "testé" juste un seul bit ;) ). – moltiplicazione bit a bit) tra il nostro valore a e 1 (chiamato maschera ). Les opérations logiques (ET, OU, NON, XOR, etc ...), en fait, sont connus pour être plus rapide en termes de courir, et puis "time machine"! (a & 1) effectue l'opération logique de ET ( & - Multiplication bit à bit) entre notre valeur a , et 1 (appelé masque). Si a = 7 (00000111), par exemple:

1
2
3
00000111 ET
= 00000001
00000001; impairs

Si a 8 =:

1
2
3
00001000 ET
= 00000001
00000000, égale

Non seulement nous pouvons vérifier les numéros, qui est, avec le premier bit à 0, et donc divisible par 2, mais peut également se produire si un nombre est divisible par 4, 8, 16, 32, 64, etc ... en utilisant les formulaires appropriés:

1
2
3
! ( a & 3 ) ) { if ((a & 3)) {
/ / Divisible par 4 (masque = 00000011 = 3), puisque 4 est 00000100)
}

Si les deux derniers bits sont mis à zéro le nombre est divisible par 4! Si les trois derniers bits (masque 00000111) sont à zéro le nombre est divisible par 8! Et ainsi de suite :)

Gskinner montre l'utilisation du module en cas de génération alternante des valeurs. Un exemple classique est de changer le fond d'une liste d'éléments:. Un blanc et un gris Gskinner propose:

1
2
3
4
5
rowIndex % 2 == 0 ) { if (rowIndex% 2 == 0) {
= 0xFFFFFF appeler rowColor;
{ Else {}
appeler rowColor = 0xCCCCCC;
}

Tout d'abord, le code ci-dessus peuvent être résolus avec une seule ligne de code:

1
2 == 0 ) ? 0xFFFFFF : 0xCCCCCC ; appeler rowColor = (rowIndex% 2 == 0) 0xFFFFFF: 0xCCCCCC;?

Par ailleurs, dans ce cas précis, je voudrais éviter d'effectuer une réalité "lourd" sous forme d'opération. Cette situation particulière est souvent engagé dans une boucle, de sorte qu'il serait "bon" ne pas perdre de cycles d'horloge de la machine. Dans ces cas, j'aime le plus propre (et logique) solution:

1
fooIndex == false ) ) ? 0xFFFFFF : 0xCCCCCC ; appeler rowColor = (fooIndex = (fooIndex == false)) 0xFFFFFF:? 0xCCCCCC;

o false , a seconda di come vogliamo impostare inizialmente il nostro colore sfondo.fooIndex precedentemete est une valeur définie au true ou false , selon la façon dont nous avons d'abord mis notre couleur de fond. Cette approche est plus subtile, moins immédiates, au premier abord, mais plus rapide car il effectue logiquement vrai / faux. la condizione (fooIndex == false) sarà falsa e di conseguenza fooIndex verrà impostato da true a false. Si fooIndex est vrai, lorsque l'instruction est exécutée (fooIndex = (fooIndex == false) ) la condition (fooIndex == false) est faux et par conséquent fooIndex sera fixé de true à false. verrà impostato da false a true! La deuxième fois, cependant, la condition (fooIndex == false) est vraie et ensuite fooIndex est du faux à vrai! Et ainsi de suite ...

Répétitions: à surveiller le comportement

L'arithmétique finie, qui est la base du fonctionnement de l'exploitation du module, il est souvent désigné comme l'arithmétique d'horloge. Une pièce d'horlogerie classique a un cadran avec des mains divisées en 12 heures (12, plus 12 jours de nuit!), Suffit à indiquer l'un des 24 heures par jour. A 08h00 Si je vous ai demandé à quelle heure votre montre score entre 18 heures, votre réponse serait de 8 +18 = 26! Mais l'02:00 dans la nuit! Involontairement et sans le savoir, peut-être, effectuer des opérations conitnuamente formulaire chaque fois que nous avons affaire à temps.

En Italie, nous sommes habitués au système de 24 heures (ou mixte). Quand nous point à 16h00 heure de l'intention que dans d'autres pays est indiqué comme h 04:00. Qui utilise le suis postfix / h à distinguer de ces heures de nuit OFA, plus souvent encore exécute l'opération du module, le module 12 dans ce cas! Nous, les Italiens, et d'autres, cependant, étant habitués à considérer les 24 heures, effectuer des opérations avec le formulaire 24!

Quand je suis 11 heures du matin (11h00 pour tous) et de penser "en 5 heures», les Italiens répondent 5 11 = 16 (quatre dans l'après-midi), un étranger pourrait aussi répondre à 5 +11 = 16 heures. Depuis 5 + 11 arithmétiques classiques, est évidemment 16, ainsi que de l'étranger pour répondre aux 16 heures? Il suffit de lancer le module 12 sur le résultat: 5 + 11 = 16 mod 12 = 4. Il n'est pas nécessaire que vous preniez une calculatrice pour vérifier l'exactitude du calcul, mais ces mesures sont un peu "tout, affiché un visage d'une horloge et placer les mains sur les 11 mentalement, puis ajouter - toujours visuellement - 5 heures, comme par magie, vous aurez en fait environ 4! C'est pourquoi ils sont appelés les quatre dans l'après-midi 16 :)

En Italie, au contraire, nous utilisons une formule 24, en fait: 11 +5 = 16 mod 24 = 16. Quand je suis à 23:00 h, 5 heures après l'28:00 ne sera pas, parce que 28 modulo 12 = 4! 122514884225 Formule 24 = 17! Qu'est-ce qui se passe est que le résultat clé de la formule 24 ne dépassera jamais 24. Mais la chose la plus intéressante est que les numéros sont répétés indéfiniment:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1% 24 = 1
2% 24 = 2
3% 24 = 3
...
22% 24 = 22
23% 24 = 23
24% 24 = 0
25% 24 = 1
26% 24 = 2
27% 24 = 3
...
48% 24 = 0
49% 24 = 1
50% 24 = 2
51% 24 = 3
...

Cette répétition est une désarmante facilité. Imaginez, par exemple, ils doivent avoir un objet, un objet MovieClip, semblable à un échiquier, en quatre colonnes. Créer un quandrato MovieClip, 55 × 55 pixels et la esportiamolo panneau de propriétés comme Simbolo . Le code suivant aura quatre colonnes de notre MovieClip et sera la "tête" avec le fonctionnement du module:

1
2
3
4
5
6
7
Number = 4 ; var col: Number = 4;
var i= 0 ; i < 12 ; i ++ ) { for (var i = 0; i <12; i + +) {
Sprite = new Simbolo ( ) ; var s: Sprite = new Symbole ();
s ) ; addChild (s);
= ( i % col ) * 60 ; s. = x (avec i%) * 60;
= Math . floor ( i / col ) * 60 ; s. y = Math . floor (i / Col) * 60;
}

cresce in modo indefinito. Comme vous pouvez le voir dans le code, la variable i cycle de for grossir indéfiniment. Mais la coordonnée x de notre MovieClip ne dépasse jamais une certaine valeur, et répète indéfiniment! Voici un exemple concret:

Chargement Flash ...

Grâce aux deux boutons vous pouvez varier le nombre de colonnes (la forme) et le nombre total d'éléments, en utilisant l'algorithme ci-dessus.

Suite ...

Papervision3D: BasicView

Papervision3D 2.0 (GreatWhite) est encore en développement et il ya de nombreuses fonctions qui sont ajoutés presque chaque semaine. En avril, a été inauguré sur le blog des développeurs ( http://dev.papervision3d.org/ ), cependant, la version 2.0, n'est pas encore officiellement publiés est souvent difficile d'arracher le vrai potentiel. Une des innovations récentes introduites, cependant, est le nouvel objet BasicView un environnement qui crée 3D avec très peu de lignes de code. Il suffit de créer cet objet pour avoir la scène, fenêtre et la caméra en un seul coup.

Suite ...

undolibrary: ActionScript 3.0 bibliothèque sur Google Code

J'ai ouvert un projet sur ​​Google Code : undolibrary. Pour l'instant, cette bibliothèque contient un seul composant (Bouton - bouton) pour être utilisé avec ActionScript 3.0. Je mentionne cela parce que ce composant est une condition préalable à une série de didacticiels / sources en Flash que je voulais mettre à disposition.

Chargement Flash ...

Google Code

Tout d'abord je vous présente le concept de Google Code pour ceux qui étaient étrangers. Google Code est un service gratuit fourni par Google, afin de partager le code, mais, surtout, de partager et de collaborer avec un système de versioning (subversion) et les wikis utiles aux équipes de développement (source ouverte surtout) ou aux programmeurs individuels. Sur le site Google Code comprennent:

Vous pouvez rechercher d'autres projets, avec un moteur de recherche spécialement conçu. Beaucoup de groupes de développement, composé des équipes qui sont situés dans des zones géographiques éloignées, profitant de ce partage de travailler ensemble, soutenus par un système de versioning bien établie (checkout / checkin ne se chevauchent pas ou supprot de créer la branche - des projets de spin-off) . Les bibliothèques et les outils tels que Papervision3D , Tweener ou as3corelib , par exemple, sont situés à droite sur Google Code profitant d'un côté d'une multitude de développement et autres accès du public à télécharger les sources et la documentation.
Point important, alors, est la possibilité - d'ouvrir un projet - pour régler l'accès et la visualisation. Si vous voulez protéger votre travail ou le rendre complètement privé plutôt que public.

Suite ...

Créer des événements personnalisé dans ActionScript 3.0

Créer des événements personnalisé dans ActionScript 3.0 est simple. Utilisez-les, puis, vous permet d'utiliser la méthode addEventListener() et faire de notre objet de toutes les normes. ) BottoneEvent . Si nous avons créé une classe, comme Bottone , cela est exact de s'associer avec un ou plusieurs événements à travers une classe spéciale (dérivée de la classe Event ) BottoneEvent . Nous pourrions faire tous les événements qui affectent le fonctionnement de notre sujet: le clic, la souris au-dessus ou tout autre événement! Ainsi que la définition de notre base personnelle. Le squelette - générique - une classe d'événements personnalisés est la suivante:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{package
/ *
** @ Nom: BottoneEvent.as
** Description @: classe dérivée de l'événement à gérer leur propre événement sur ​​mesure
** @ Auteur: undo = =
** @ Web: http://www.undolog.com
** @ Email: @ g.fazioli undolog.com
* /
.*; flash.events importation .*;

BottoneEvent extends Event { BottoneEvent s'étend public class Event {

String = 'pluto' ; // codice qualsiasi, anche 'mioevento' in minuscolo public static const MIOEVENTO: Chaîne = 'bar', / / aucun code, même «mioevento» en minuscules

Valore : Number = NaN ; publique valeur var: Nombre = NaN;
/ *
** @ Nom: BottoneEvent
** Description @: constructeur
* /

type , bubbles , cancelable ) ; super (type, bubbles, cancelable);
Value = v ; cette valeur = v.;
}

/ *
** @ Override
* /
clone ( ) : Event { public override function clone (): Event {
this . type , this . Value , this . bubbles , this . cancelable ) ; Retour KnobEvent nouvelle (type this., cette valeur, cette bulle, ce résiliables...);
}
}
}

Suite ...

FIVe3D: effets d'un cube! Waiting for Flash 10

Très probablement, quand il sort la nouvelle version d'Adobe Flash, 3D pour les bibliothèques "bas niveau" comme FIVe3D finira mal! Cependant, avant la "Corbeille", voici un exemple de ce qui peut être atteint (avec la dernière version 2.1):

Chargement Flash ...

Le code de la démo ci-dessus est assez articulé, donc je ne propose pas entièrement en ligne. Insertion, cependant, quelques morceaux de code intéressante.

Mise à jour: pour la source , cliquez ici

Suite ...

Adobe Flash Player 10 beta libérée et l'API Google Maps

Mise à jour: voir Comment utiliser Google Maps dans Adobe Flash CS4

Mise à jour: il semble que Google ne va pas et au lieu d'écrire Flex écrit Flash! Morale de la situation, l'API Google Maps a été libéré seulement pour Flex et Flash ne fonctionnent pas dans l'environnement: une démonstration de la confusion que ces deux "branches" (Flex / Flash) sont à l'origine! Lire à ce propos, zut google bien faire les choses! la carte Google API pour Flex n'est pas Flash!

Suite ...