Traduction d'un petit code AS1&2 vers AS3

Syphou Messages postés 52 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 6 juin 2011 - 4 juil. 2008 à 10:59
cs_bali_balo Messages postés 1378 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 1 novembre 2010 - 4 juil. 2008 à 15:17
Bonjour :-)

J'ai trouvé un code en ActionScript 1&2 qui permet d'écrire en rond. Un fois compilé en swf j'ai tenté d'appeler une de ses méthodes via Flex. Mais cela ne fonctionne pas et je pense que c'est parce que le swf n'est pas écrit en ActionScript3. J'ai donc besoin d'aide pour traduire ce code en AS3 car plusieurs chosent changent en AS3. Quelqu'un veux bien m'aider ?

Voici le code :

var rad = Math.PI/180;

function fRundSatzA() {    var anz this.line_text.length+(this.oeffnungs_winkel 360 ? 1 : 0);
    var chars = [];
    var abstand = [];
    var abstand_sum = 0;
    for (i=0; i<anz; i++) {
        var _mc = makeCarBox.call(this, i);
        chars.push(_mc);
        abstand_sum += abstand[i]=(text == " " ? this.space_faktor : 1)*_mc._width;
    }
    var h = rad*this.oeffnungs_winkel/(abstand_sum-abstand[anz-1])/2;
    var w = rad*this.anfangs_winkel;
    for (i=0; i<anz; i++) {
        chars[i]._x = Math.cos(w)*this.durchmesser;
        chars[i]._y = Math.sin(w)*this.durchmesser;
        chars[i]._rotation = (Math.PI/2+w)/rad;
        w += (abstand[i]+abstand[i+1])*h;
    }
}

function makeCarBox(i) {
    var _mc = this.createEmptyMovieClip("x"+i, i+1);
   
    _mc.createTextField("char", 1, 0, 0, 0, 0);
    _mc.char.autoSize = "center";
    _mc.char.selectable = false;
    _mc.char.embedFonts = true;
    _mc.char.setNewTextFormat(this.rund_fmt);
    _mc.char.text = this.line_text[i];
    _mc.char._x = -_mc._width/2;
    _mc.char._y = -_mc._height/2;
    return _mc;
}

function setText(txt)
{
    var _mc = _root.createEmptyMovieClip("satz2_mc", 2);
   
    _mc._x = Stage.width/2;
    _mc._y = Stage.height/2;
    _mc.durchmesser = 140;
    _mc.anfangs_winkel = 180;
    _mc.oeffnungs_winkel = 180;
    _mc.line_text = (txt).split("");
    _mc.space_faktor = 1.5;
    _mc.rund_fmt = new TextFormat();
    _mc.rund_fmt.font = "Arial";
    _mc.rund_fmt.size = 28;
    _mc.rund_fmt.color = 0x0000ff;
    fRundSatzA.call(_mc);
}

setText("Hello World");

-----------------------------------------
(à savoir que pour ceux qui veulent le tester, il faut importer la font Arial dans la bibliotheque pour que cela fonctionne)

Merci

1 réponse

cs_bali_balo Messages postés 1378 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 1 novembre 2010 1
4 juil. 2008 à 15:17
Regarde sur le site officiel d'Abode la doc pour voir comment créer un texte dynamique et un MovieClip sur la scène en AS3
Sinon le reste du code m'a l'air correct. Enfin ya pas mal de chose à revoir. Le typage des variables par exemple.

bali_balo....=]
0
Rejoignez-nous