Пробовал перевести пример с AS на haXe. Не могу разобраться.
Не работает rotationY или я что то делаю не так.
Код as :
package {
import flash.display.*;
import flash.events.*;
public class Main extends Sprite {
public function Main() {
addEventListener('addedToStage', function(e:Event){
stage.scaleMode = 'noScale';
stage.align = 'TL';
stage.frameRate = 30;
});
x = y = 200;
var a:Array = [];
for (var i:uint = 0; i < 30; i++) {
var s:Shape = new Shape;
s.graphics.clear();
s.graphics.beginFill(i * 0x90000 + i * 0x10, .07);
s.graphics.drawRoundRect(10+i, 10+i, 120, 120, 30);
s.graphics.endFill();
addChild(s);
a.push(s);
}
addEventListener('enterFrame', function(e:Event){
var i:uint;
for each(s in a) s.rotation += i++/3;
rotation += .6;
rotationY += .4;
});
}
}
}
Код haXe:
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.DisplayObject;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
class Main extends Sprite {
static public function main() {
var root = flash.Lib.current;
root.addEventListener('addedToStage', function(e:Event){
root.stage.scaleMode = NO_SCALE;
root.stage.align = TOP_LEFT;
root.stage.frameRate = 30;
});
root.x = root.y = 200;
var a:Array<Shape> = [];
var i;
for (i in 0...30) {
var s:Shape = new Shape();
s.graphics.clear();
s.graphics.beginFill(i * 0x90000 + i * 0x10, .07);
s.graphics.drawRoundRect(10+i, 10+i, 120, 120, 30);
s.graphics.endFill();
root.addChild(s);
a.push(s);
}
root.addEventListener('enterFrame', function(e:Event){
var i:Int=0;
for(s in a) s.rotation += i++/3;
root.rotation +=0.6;
root.rotationY +=0.4; /* не работает */
});
}
}
Скорее всего, вы используете 9 fp
Скорее всего, в качестве целевой платформы у вас стоит -swf-version 10, или вообще ничего не стоит, поэтому и компилится под 9 плейер.
3D-фичи появились в 10 флеше.
Попробуйте в hxml-файле прописать:
-swf9 test.swf
-swf-version 10
-main Main
Если же пользуете flashdevelop, то в настройках проекта выставите Target: FlashPlayer 10
А так, код вполне рабочий, но некрасивый :(
Хотя сам эффект довольно красивый ;)
Спасибо...
Спасибо... Действительно проблема была в указанной версии.
Некрасивый as или haXe ? :)
AS3. Просто не
AS3.
Просто не люблю анонимные функции, нестрогую типизацию, а также пренебрежение константами классов