У меня есть fla.
В 1 ом кадре

Код AS1/AS2:
var map:map = new map(_root.mapper, 6,6);
var snak:snaker = new snaker();//(3, _root.snake);
var body:body = new body(5);
trace (map)
trace (snak)
trace (body)
snak.update_target_o()
var body2:body = new body(1);
trace (body2)
выводит

Код AS1/AS2:
undefined
[object Object]
[object Object]
undefined
То есть не создается snak, но он описан так же как остальные. Так же не создается второй body (почему?)
Классы находятся в той же папке что и fla.
Имена их совпадают с именем класса.
Коды

Код AS1/AS2:
class snaker{
public var stepmax=60;
public var steps=60;
public var stepsize=1;
public var movespeed=10;
public var parts=[]
//public function snaker(n, mc) {
//var mc1,i
//var body = new body(i);
//trace (body)
//for (i=0; i<n;i++) {
//body = new body(i);
//trace (body)
//parts[parts.length]=body;
//trace (parts[i].target_o)
//}
//}
public function add_body(body) {
trace ("Added body " + body);
parts[parts.length]=body
}
public function move_snake(){
var i;
var part
if(steps >= 0){
for (i=0; i<parts.length; i++) {
part = parts[i];
part.mc._x += Math.cos(part.look)*stepsize;
part.mc._y += Math.sin(part.look)*stepsize;
}
steps--;
setTimeout(move_snake, movespeed);
} else {
update_target_o();
}
}
public function update_target_o(){
trace ("Закончилось движение")
}
}

Код AS1/AS2:
class map{
public var o=[];
public var mc
public var w;
public var total
public function get_degree(o1, o2){
var m1 = o[o1];
var m2 = o[o2];
var look = Math.atan2(m2._y - m1._y, m2._x - m1._x)
return look;
}
public function map (mcc,ww,ttotal) {
mc = mcc;
w = ww;
total = ttotal;
var i;
for (i=0; i<total; i++) {
var mc1 = mc.attachMovie("cell", "cell_"+i, i)
o[o.length]=mc1;
mc1._x = 60 + 60*i;
mc1._y = 60;
}
}
}

Код AS1/AS2:
class body {
public var mc
public var target_o
public var now_o
public var look
public function body(i){
mc = _root.snaker.attachMovie("part", "part_"+i, i);
target_o = i+1;
now_o = i;
mc._x = _root.map.o[now_o]._x
mc._y = _root.map.o[now_o]._y
}
public function set_look(){
look = _root.map.get_degree(now_o, target_o);
mc._rotation = look;
}
}
Не могу понять что я дела не правильно
