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