p = 0; format = new TextFormat(); format.font = "Trebuchet MS"; function creerlettres(lettre) { _root.createTextField("clip" + lettre, ++p, 0, 0, 30, 30); _root["clip" + lettre].selectable = false; _root["clip" + lettre].text = lettre.toUpperCase(); _root["clip" + lettre].setTextFormat(format); _root["clip" + lettre].textColor = "0xFFFFFF"; } creerlettres("a"); creerlettres("b"); creerlettres("c"); creerlettres("d"); creerlettres("e"); creerlettres("f"); creerlettres("g"); creerlettres("h"); function affichage(lettre) { _root["clip" + lettre]._x = _root[lettre][0] + cube._x; _root["clip" + lettre]._y = _root[lettre][1] + cube._y; } // Fonction de rotation longueur = 150; hauteur = 150; function rotation(alpha, beta) { coefficient = Math.cos(Math.PI / 180 * beta); b = [0, 0]; a = [b[0] - longueur * Math.sin(Math.PI / 180 * alpha), b[1] + longueur * Math.cos(Math.PI / 180 * alpha) * Math.sin(Math.PI / 180 * beta)]; c = [b[0] + longueur * Math.cos(Math.PI / 180 * alpha), b[1] + longueur * Math.sin(Math.PI / 180 * alpha) * Math.sin(Math.PI / 180 * beta)]; g = [c[0] - longueur * Math.sin(Math.PI / 180 * alpha), c[1] + longueur * Math.cos(Math.PI / 180 * alpha) * Math.sin(Math.PI / 180 * beta)]; d = [a[0], a[1] + hauteur * coefficient]; e = [b[0], b[1] + hauteur * coefficient]; f = [c[0], c[1] + hauteur * coefficient]; h = [g[0], g[1] + hauteur * coefficient]; cube.clear(); cube.beginFill("0xAAAAAA", 50); cube.lineStyle(1, "0xFF0000", 100); cube.moveTo(b[0], b[1]); cube.lineTo(a[0], a[1]); cube.lineTo(d[0], d[1]); cube.lineTo(e[0], e[1]); cube.moveTo(b[0], b[1]); cube.endFill(); cube.beginFill("0x00FF00", 50); cube.lineTo(c[0], c[1]); cube.lineTo(f[0], f[1]); cube.lineTo(e[0], e[1]); cube.lineTo(b[0], b[1]); cube.endFill(); cube.beginFill("0x0000FF", 50); cube.lineTo(c[0], c[1]); cube.lineTo(g[0], g[1]); cube.lineTo(a[0], a[1]); cube.lineTo(b[0], b[1]); cube.endFill(); cube.beginFill("0x00FFFF", 50); cube.moveTo(h[0], h[1]); cube.lineTo(f[0], f[1]); cube.lineTo(e[0], e[1]); cube.lineTo(d[0], d[1]); cube.lineTo(h[0], h[1]); cube.endFill(); cube.beginFill("0xFFFF00", 50); cube.lineTo(g[0], g[1]); cube.lineTo(c[0], c[1]); cube.lineTo(f[0], f[1]); cube.lineTo(h[0], h[1]); cube.endFill(); cube.beginFill("0xFF00FF", 50); cube.lineTo(g[0], g[1]); cube.lineTo(a[0], a[1]); cube.lineTo(d[0], d[1]); cube.lineTo(h[0], h[1]); cube.endFill(); } rotation(45,45); _root.createEmptyMovieClip("cube", 0); cube._x = 200; cube._y = 50; // Gestion des événements claviers ecouteur = new Object(); ecouteur.onKeyDown = function() { if(Key.isDown(Key.RIGHT)) { rotation(++alpha, beta); } if(Key.isDown(Key.LEFT)) { rotation(--alpha, beta); } if(Key.isDown(Key.UP)) { rotation(alpha, --beta); } if(Key.isDown(Key.DOWN)) { rotation(alpha, ++beta); } } Key.addListener(ecouteur); function bouger() { affichage("a"); affichage("b"); affichage("c"); affichage("d"); affichage("e"); affichage("f"); affichage("g"); affichage("h"); } setInterval(bouger, 1); alpha = 30; beta = 30; rotation(alpha, beta);