Кстати вот тебе для полного счастья пример маленький ... на Линго как то проще и изящнее, я пока не смотрел особо новый Дир, а как выясняется JS сильно уступает Lingo в некоторых вещах (кое где JS вообще не имеет синтаксиса). Не поддерживаются всякие мат. операции с векторами, бесит использование symbol("symbolName") вместо #symbolName

и т д - вобщем много чего, поживем увидим ...

Код:
function startMovie ()
{
var i;
var world;
var modelResource;
var model;
var shader;
world = _movie.newMember("shockwave3d");
world.name = "SW3D";
world.regPoint = point(0,0);
modelResource = world.newModelResource("b", symbol("sphere"));
modelResource.radius = 50;
for(i=1;i<10;i++)
{
model = world.newModel("model"+i, modelResource);
model.transform.rotation = JSMultiVector(randomVector(), vector(360,360,360));
model.transform.position = JSMultiVector(randomVector(), vector(50,50,100));
model.transform.scale = JSMultiVector(randomVector(), vector(2,2,2));
model.userData.addProp(symbol("mRVector"), randomVector())
}
shader = world.getPropRef("shader", 1);
shader.texture = null;
shader.renderStyle = symbol("point");
channel(1).makeScriptedSprite(world, point(0,0));
}
function stopMovie()
{
channel(1).removeScriptedSprite();
member("SW3D").erase();
}
function exitFrame()
{
var world;
var model;
world = member("SW3D");
for(var i=1; i<10; i++)
{
model = world.getPropRef("model", i);
model.rotate(1,2,3,symbol("self"));
model.rotate(model.userData.mRVector,symbol("world"));
}
_movie.go(_movie.frame);
}
function JSMultiVector(v1,v2)
{
return vector(v1.x*v2.x,v1.y*v2.y,v1.z*v2.z);
}