Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.05.2011, 18:19
Avrilka вне форума Посмотреть профиль Отправить личное сообщение для Avrilka Найти все сообщения от Avrilka
  № 1  
Ответить с цитированием
Avrilka

Регистрация: Jun 2010
Адрес: A(undefined,undefined)
Сообщений: 87
Записей в блоге: 2
По умолчанию Не подключаются классы нормально.

У меня есть 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;
	}
}
Не могу понять что я дела не правильно

Создать новую тему Ответ Часовой пояс GMT +4, время: 08:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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