Lecteur MP3 basique en as3

•1 décembre 2008 • Laisser un commentaire

J’ai fais un petit lecteur pour un projet, qui devais chargé dynamiquement un fichier audio, avec visualisation du téléchargement.

Pour l’utilisé rien de plus simple :

Dans la section “AC_FL_RunContent” rajoutez :

'flashvars', 'src=URL_FICHIER',

Ou dans la section sans Javascript :

    <embed src="mp3player.swf&src=URL_FICHIER" ...

Je met le fichier zippé de mon projet (sans le skin final bien sur).

Player MP3.zip

Mon squelette de Base pour Papervision 2.0

•15 juillet 2008 • Laisser un commentaire

Bonjour je partage avec vous mon squelette de base pour mes projets avec Papervision 2.0.

Pour codé j’utilise Flashdevelop, et pour le graphisme j’utilise Flash CS3.
Ensuite dans la Classe du documents je met que le nom du fichier “as”, pour cette exemple,
je l’enregistre sous le nom “prototype-Papervision.as” et dans la classe du document sous flash je met “prototype-Papervision”.

package {
    import fl.transitions.*;
    import fl.transitions.easing.*;
    import flash.events.*;
    import flash.display.*;
    import flash.filters.*;
    import flash.geom.*;
    import flash.sampler.*;
    import flash.utils.*;
    import flash.text.*;
    import org.papervision3d.core.culling.*;
    import org.papervision3d.core.effects.*;
    import org.papervision3d.core.effects.objects.*;
    import org.papervision3d.core.effects.utils.*;
    import org.papervision3d.core.render.filter.*;
    import org.papervision3d.core.render.draw.*;
    import org.papervision3d.core.render.material.*;
    import org.papervision3d.Papervision3D;
    import org.papervision3d.core.geom.*;
    import org.papervision3d.core.geom.renderables.*;
    import org.papervision3d.core.proto.*;
    import org.papervision3d.events.*;
    import org.papervision3d.cameras.*;
    import org.papervision3d.lights.*;
    import org.papervision3d.render.*;
    import org.papervision3d.scenes.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.materials.utils.*;
    import org.papervision3d.materials.shadematerials.*;
    import org.papervision3d.materials.shaders.*;
    import org.papervision3d.materials.special.*;
    import org.papervision3d.view.*;
    import org.papervision3d.view.layer.*;
    import org.papervision3d.view.layer.util.*;
    import org.papervision3d.view.stats.*;
    import org.papervision3d.objects.*;
    import org.papervision3d.objects.parsers.*;
    import org.papervision3d.objects.primitives.*;
    import org.papervision3d.objects.special.*;
    import caurina.transitions.*;
    /**
    * ...
    * @author $(DefaultUser)
    */
    public class protype-Papervision extends MovieClip {
        public var ViewPort:Viewport3D; // The ViewPort
        public var renderer:BasicRenderEngine; // Rendering engine
        public var default_scene:Scene3D; // A Scene
        public var default_camera:Camera3D; // A Camera
        public var camera:FreeCamera3D;
        function conflits () {
            Papervision3D.VERBOSE = false;
            initPaper();
        }
        private function initPaper():void{
            ViewPort = new Viewport3D(800, 600, true, false);
            addChild(ViewPort);
            renderer = new BasicRenderEngine();
            default_camera = new Camera3D();
            default_scene = new Scene3D();
            camera = new FreeCamera3D(1, 500);
            initObject();
        }
        private function initObject():void{
            initEvent();
        }
        private function initEvent():void{
            addEventListener(Event.ENTER_FRAME, onEnterFrame);
        }
        private function onEnterFrame(evt:Event):void{
            renderer.renderScene(default_scene, camera, ViewPort);
            Process();
        }
        private function Process():void{
        }
    }
}

Dans un système amd64, installé la racine d’un jail en i386

•15 juillet 2008 • Laisser un commentaire

Bonjour, alors avant de commencé vérifier bien que le kernel est bien compilé avec l’option “COMPAT_IA32″.

Pour recevoir ma base jail j’ai choisit de mettre sur un disque à part, pour pouvoir facilement la remettre en place en cas de réinstallation :) .

# cd /usr/src
# make TARGET_ARCH=i386 TARGET=i386 buildworld
# make TARGET_ARCH=i386 TARGET=i386 installworld DESTDIR=/mnt/60GO/jails/
  192.168.0.3
# ln -s /mnt/60GO/jails/192.168.0.3/libexec/ld-elf.so.1 /mnt/60GO/jails/
  192.168.0.3/libexec/ld-elf32.so.1

Voila tout vous pouvez maintenant vous livrez aux joies du jail avec un système 32bits.

ps: quelques utilitaires ne fonctionnerons pas (top,w,ps,etc…) parce qu’ils demande des information du kernel mais le kernel retourneras toujours des données en 64bits… Je n’ai pas trouvé de solution à ce jour…

Appliqué des effets facilement en as3

•31 mai 2008 • 3 commentaires

On vas voir aujourdhui comment appliqué des effets graphiques au clip facilements. Imaginons qu’il y a sur la scène trois clips, “Boule0″, “Boule1″, “Boule2″.
Alors pour appliqué au premier un filtre de Flou au premier clip donc “Boule0″, au second un filtre de biseautage le clip “Boule1″, et au dernier clip “Boule2″ le flou le biseautage et une rayonnement externe bleu.
on importe les librairies de bases Flash:

 import fl.transitions.*;
import fl.transitions.easing.*;

On crée un conteneur pour stocké nos filtres:

var Ar:Array = new Array();

Et enfin on définit nos trois filtres dans le conteneur de type tableau:

Ar[0] = new BlurFilter(4, 4, 1);
Ar[1] = new BevelFilter(4.0, 45, 0xFFFFFF, 1.0, 0x000000, 1.0, 4.0, 4.0, 1, 1,
 "inner", false);
Ar[2] = new GlowFilter(0xFF, 1, 6, 6, 2, 1, false, false);

Et enfin on applique les filtres aux trois clip:

Boule0.filters = [Ar[0]];
Boule1.filters = [Ar[1]];
Boule2.filters = Ar;

Et voila comment on utilise facilement des filtres en as3, vous aurez remarquer que pour les clips “Boule0″ et “Boule1″ j’ai mit l’entrée du tableau entre crochets. Tout simplement parce que le membre “filters” demande absolument un objet tableau, et cette syntaxe simule un objet tableau.
Ce genre de mise en place de code à toujours rebuté certain mais ça a le mérite de simplifié le code mais surtout de crée largement moins de variables qu’il faudrait habituellement! :)

Bug classe Tween as3

•28 mai 2008 • 6 commentaires

Vous avez surement du le remarquer mais aléatoirement lorsque qu’on fait un code typique genre:

import fl.transitions.*;
import fl.transitions.easing.*;
var T:Tween = new Tween(boule, "x", Strong.easeOut, 0, 350, 4, true);

Ça marche bien dans la plupart des cas mais, parfois la Tween s’arrete d’elle même. Pour palier à ce problème j’ai trouvé une astuce sur un forum c’est de ne pas utiliser directement un object Tween en faisant comme cela :

import fl.transitions.*;
import fl.transitions.easing.*;
var Ar:Array = new Array();
Ar[0] = new Tween(boule, "x", Strong.easeOut, 0, 350, 4, true);

En mettant la Tween dans un objet tableau il seras toujours trés bien exécuté :) !

Charger des images en fondu en as3

•27 mai 2008 • 2 commentaires

Bonjour alors aujourd’hui je vais vous montrez comment charger des images rapidements. Imaginons un sous dossier “img” près de notre swf final, nous y méttrons 5 images numéroté de 0 à 4 au format “jpg”.

Bon je vous met le code en entier que j’expliquerai ensuite :) .

import fl.transitions.*;
import fl.transitions.easing.*;
var Ar:Array = new Array();
Ar["Conteneur"] = new Sprite();
addChild(Ar["Conteneur"]);
for (var i:Number = 0; i < 5; i++) {
    try {
        var url:String = new String("img/img" + i + ".jpg");
        Ar[i] = new Loader()
        Ar[i].load(new URLRequest(url));
        Ar["Conteneur"].addChild(Ar[i]);
    } catch (e:Error) {
        trace(e);
    } finally {
        Ar[i].addEventListener(Event.COMPLETE, Affiche);
    }
}
function Affiche(evt:Event) {
    var Twn:Tween = new Tween(evt.target, "alpha", None.easeNone, 0, 1, 1, true);
}

Bon alors en début on importe les librairies, puis on crée une variable tableau pour stocké toute les images et le conteneur. Donc “Ar["Conteneur"] = new Sprite();” c’est pour avoir un conteneur pour stocké les images. Et on commence la boucle “for” pour chargé les images, “i = 0″ et le max est 5 donc il va compté de 0 à 4. A chaque passage de la boucle ont cré une variable “url” contenant le chemin de l’image, on ajoute un nouveau objet de type “Loader” dans le tableau, ensuite on charge url dans l’objet loader puis on l’ajoute au conteneur, enfin on met un ecouteur pour savoir quand l’image seras complètement chargé pour appliqué la fonction “Affiche”. La fonction “Affiche” ne fait qu’une seule chose, affiché en fondu l’image.

Et voila avec ce petit bout de code vous afficherez en fondu le nombre d’image que vous voulez :) amusez vous en modifiant quelques paramètre du “Tween” ça peut être vraiment sympa.

——————————

Voici un fichier “.doc” avec une variante, en utilisant un “Timer” au lieux d’une boucle “for”.

Classe de Chargement