Archive pour la catégorie ‘Code’

Code

Trois petites méthodes…

…bien utiles pour des scrollbars (entre autre).

Qui ne s’est jamais pris la tête avec des scrollbars dans Flash ? Quand il faut calculer le ratio entre les positions du contenu et du bouton de scroll… Pour peu que la taille de la scrollbar soit différente de celle du conteneur, on s’en arrache vite les cheveux.

Bit-101 a transcrit en AS3 trois méthodes provenant d’un livre sur Processing.

normalize(value, min, max) prend une valeur comprise dans un intervalle min - max et la convertit en une valeur comprise entre 0 et 1. La valeur de départ peut dépasser les bornes de l’intervalle.

interpolate(value, min, max) prend une valeur normalisée (comprise entre 0 et 1) et renvoie la valeur correspondante dans l’intervalle min - max.

map(value, min1, max1, min2, max2) prend une valeur et un intervalle de départ (min1 - max1) et renvoie la valeur correspondante dans l’intervalle min2 - max2.

L’article original de Bit-101
Et la petite classe as3 :

package {
	public class NumberUtils {
		public static function normalize(value:Number, minimum:Number, maximum:Number):Number {
			return (value - minimum) / (maximum - minimum);
		}
		public static function interpolate(normValue:Number, minimum:Number, maximum:Number):Number {
			return minimum + (maximum - minimum) * normValue;
		}
		public static function map(value:Number, min1:Number, max1:Number, min2:Number, max2:Number):Number {
			return interpolate( normalize(value, min1, max1), min2, max2);
		}
	}
}

Le 14 mai 2008 par PingooO

Tags = ["", ""];

3 commentaires

Code

Des lignes avec le moteur “3D”

A la demande d’un certain guillaume, voici une légère mise à jour de mon petit moteur de pseudo 3D pour flash.

Les propriétés MovieClip3D.X et MovieClip3D.Y renvoient les valeurs x et y du MovieClip après la projection.
Voici le même exemple avec des lineTo reliant les MovieClip (vides) entre eux.

Attention tout de même, les lineTo sont assez gourmand en ressources avec Flash. Au delà de 300 lineTo à chaque enterFrame, ça commence à ramer…

Télécharger les sources

This movie requires Flash Player 9

Le 20 février 2008 par PingooO

Tags = ["", "", ""];

2 commentaires

Code

Displacement Mapping en AS3 avec Papervision 2.0

DisplaceMapDemo Screenshot

La sortie de Papervision 2.0 - Great White la semaine dernière a repoussé encore un peu plus les limites de flash (hum quelle intro…) en apportant pas mal de nouveautés (Shaders, Bump-mapping, ASCollada pour importer des mesh skinné, Frustum culling..etc). Mais Great White c’est aussi une gestion ameillorée des évenements souris (via la classe InteractiveUtils) permettant, par exemple de récupérer facilement les coordonnées de projection (u,v) d’un clic de souris sur un objet 3D.

Cette dernière nouveauté qui est passé presque inaperçue à la sortie de GW, m’a donné l’idée de faire une classe de Displacement Mapping. Fonctionnalité absente dans papervision et pourtant trés répandue en 3D. Pour ceux qui ne voient pas ce que c’est, ça consiste à obtenir une déformation 3D grâce aux niveaux de gris d’une image. C’est le procédé utilisé pour faire des terrains ou pour faire du brush-modeling avec Z-brush par exemple. Du coup je me suis plongé dans PV3D 2.0 et y’a pas à tortiller, c’est vraiment une putain de release! (Mis à part le fait que ce soit une alpha non documentée grrrr…).

Lire le reste de cet article »

Le 15 décembre 2007 par kikko

Tags = ["", "", "", ""];

15 commentaires

Code

Moteur “3D” en AS3

C’est sans prétention, mais ça peut servir pour la réalisation rapide de menus funky.

Il s’agit d’un mini moteur de pseudo 3D, il permet de placer des MovieClips dans un espace tridimentionnel.

Au lieu de faire un tuto, je vous invite à télécharger les sources qui contiennent une demo toute simple.

Télécharger les sources

This movie requires Flash Player 9

Le 23 novembre 2007 par PingooO

Tags = ["", "", ""];

5 commentaires

Code

SWFAddress pour AS3 en mieux

Bien utile ce petit projet qu’est SWFAddress. Ce système mêlant JavaScript et ActionScript permet de gérer une navigation dans un site full Flash à l’aide de la barre d’adresse. Plus précisément à l’aide du hash de l’URL (la partie qui se trouve après le #).

Je vous propose ici la class SWFAddress AS3 utilisée côté Flash, mais réécrite en version instanciable et utilisant le modèle événementiel de l’AS3 (addEventListener …)

Télécharger la classe
Site de SWFAddress

Voici l’utilisation de base de cette classe :

package {
  public class Main {
    private var addr:SWFAddress;
 
    public function Main() {
      addr = new SWFAddress();
      addr.addEventListener(Event.CHANGE, addressChange);
    }
    private function addressChange(e:Event) {
      trace(addr.value);
    }
  }
}

Le 5 novembre 2007 par PingooO

Tags = ["", "", "", ""];

6 commentaires