Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Не подключаются классы нормально. (http://www.flasher.ru/forum/showthread.php?t=156106)

Avrilka 16.05.2011 18:19

Не подключаются классы нормально.
 
У меня есть 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;
        }
}

Не могу понять что я дела не правильно :wacko:


Часовой пояс GMT +4, время: 06:01.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.