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

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

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

Регистрация: Apr 2010
Сообщений: 25
По умолчанию Перевод AS 1.0 в AS 3.0

Вопрос такой появился: нашёл код на ActionScript 1.0 и надо перевезти в ActionScript 3.0, но так как я не знаю AS 1.0 вобще нисколько... может есть какие то программы-транскрипторы, конвертаторы и т.д., чтобы можно было автоматически перегнать код? Или соответсвующая литература по переходу (переводу) с AS 1.0 на AS 3.0. Спасибо.

P.S. AS 3.0 знаю тоже плоховато, перевод AS 1.0 в 3.0 нужен преимущественно с целью обучени AS 3.0

Старый 14.04.2010, 09:08
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
http://help.adobe.com/ru_RU/AS3LCR/F...migration.html
Программ естественно никаких нет и быть не может.

Старый 14.04.2010, 10:25
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 3  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Выложите код, посмотрим.

Старый 14.04.2010, 11:14
Tahion вне форума Посмотреть профиль Отправить личное сообщение для Tahion Найти все сообщения от Tahion
  № 4  
Ответить с цитированием
Tahion

Регистрация: Apr 2010
Сообщений: 57
Цитата:
Сообщение от udaaff Посмотреть сообщение
http://help.adobe.com/ru_RU/AS3LCR/F...migration.html
Программ естественно никаких нет и быть не может.
Вообще то есть. Я не буду искать пример и давать на него ссылку но то что они есть это точно


Последний раз редактировалось udaaff; 14.04.2010 в 11:41.
Старый 14.04.2010, 11:42
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от Tahion Посмотреть сообщение
Вообще то есть. Я не буду искать пример и давать на него ссылку но то что они есть это точно
Из AS2 (т.е. если у вас код на классх написан) в AS3 возможно. Даже находится много чего: http://www.google.com/search?hl=ru&n...=&oq=&gs_rfai=

Старый 14.04.2010, 13:02
Tahion вне форума Посмотреть профиль Отправить личное сообщение для Tahion Найти все сообщения от Tahion
  № 6  
Ответить с цитированием
Tahion

Регистрация: Apr 2010
Сообщений: 57
ну смотря какой код был на АС1 если он прототипы писал то незнаю . Ну а если просто набор функций то может быть.

Старый 14.04.2010, 14:08
armastus вне форума Посмотреть профиль Отправить личное сообщение для armastus Найти все сообщения от armastus
  № 7  
Ответить с цитированием
armastus

Регистрация: Apr 2010
Сообщений: 25
Код AS1/AS2:
//устанавливаем качество в "low"
_quality = "low";
//*Глобальные переменные*
//текущий уровень
var current_stage = 0;
//Колличесво ходов
var step_txt = 0;
//позиция игрока
var igrok_poz_x;
var igrok_poz_y;
//
//*Двумерные массивы с картой уровня*
//общий
var stage_arr = new Array(8);
//для мишеней
var stage_t_arr = new Array(8);
//
for (i=0; i<8; i++) {
	stage_arr[i] = new Array(8);
	stage_t_arr[i] = new Array(8);
}
//
//*грузим данные*
//Создаем объект
stageXML = new XML();
//подтягиваем наши уровни
stageXML.load("stages.xml");
//если загрузился - передаем управление функции is_loaded
stageXML.onLoad = is_loaded;
//игнорируем пробелы внутри XML
stageXML.ignoreWhite = true;
//кодировка на всякий случай
stageXML.useCodepage = true;
function is_loaded(success) {
	if (success) {
		//если загрузился файл
		//определяем количество уровней
		_root.stages_num = stageXML.childNodes.length;
		//рисуем текущий
		drawStage(current_stage);
	} else {
		//файл не загрузился
		trace("неудача");
	}
}
//
 
//Передаем функции номер уровня
function drawStage(num) {
	//временная переменная
	var tempString;
	//создаем клип, в котором будем все рисовать
	_root.createEmptyMovieClip("stage_mc", 1);
	//переместим его немного вправо-вниз
	stage_mc._x = stage_mc._y=10;
	//отобразим номер уровня
	level_txt = num+1;
	//обнуляем массив, ведь эта функция будет также использоваться для перерисовки
	for (i=0; i<8; i++) {
		for (j=0; j<8; j++) {
			stage_arr[i][j] = 0;
		}
	}
	//построчно читаем уровень из XML и разбиваем строку на символы
	for (j=0; j<8; j++) {
		tempString = stageXML.childNodes[num].childNodes[j].childNodes+"";
		for (i=0; i<8; i++) {
			//каждый символ заносим в массив
			stage_arr[i][j] = tempString.charAt(i);
		}
	}
	//это колличество предметов в уровне
	b_incr = 0;
	//количество мишеней
	t_incr = 0;
	//начинаем рисовать
	for (i=0; i<8; i++) {
		for (j=0; j<8; j++) {
			//попутно пустошим массив для мишеней
			stage_t_arr[i][j] = "_";
			//стена
			if (stage_arr[i][j] == "w") {
				stage_mc.attachMovie("wall", "wall_"+i+"_"+j, (i+1)*100+j, {_x:20*i, _y:20*j});
			}
			//предмет
			if (stage_arr[i][j] == "b") {
				b_incr++;
				stage_mc.attachMovie("box", "box_"+b_incr, 2000+b_incr, {_x:20*i, _y:20*j});
				//записываем в главный массив полное имя мувика
				stage_arr[i][j] = "box_"+b_incr;
			}
			//если мишень
			if (stage_arr[i][j] == "t") {
				//переносим данные из главного массива в массив мишеней
				stage_arr[i][j] = "_";
				t_incr++;
				stage_mc.attachMovie("target", "target_"+t_incr, 1000+t_incr, {_x:20*i, _y:20*j});
				stage_t_arr[i][j] = "t";
			}
			//если игрок
			if (stage_arr[i][j] == "m") {
				stage_mc.attachMovie("igrok", "igrok_mc", 10000, {_x:20*i, _y:20*j});
				//он у нас сам по себе - в массиве чистим после него
				stage_arr[i][j] = "_";
				//начальная позиция
				igrok_poz_x = i;
				igrok_poz_y = j;
			}
		}
	}
}
 
//*Обработчик клавиатуры*
keyListener = new Object();
keyListener.onKeyDown = function() {
	//Вверх
	if (Key.getCode() == 38) {
		checkMove(0, -1);
		stage_mc.igrok_mc.gotoAndStop(1);
	}
	//Вниз
	if (Key.getCode() == 40) {
		checkMove(0, 1);
		stage_mc.igrok_mc.gotoAndStop(3);
	}
	//Влево
	if (Key.getCode() == 37) {
		checkMove(-1, 0);
		stage_mc.igrok_mc.gotoAndStop(4);
	}
	//Вправо
	if (Key.getCode() == 39) {
		checkMove(1, 0);
		stage_mc.igrok_mc.gotoAndStop(2);
	}
};
Key.addListener(keyListener);
//
//Двигаем персонажи
function checkMove(t_x, t_y) {
	//временные
	var str_t, str_t2;
	//что стоит на клетку вперед?
	str_t = stage_arr[igrok_poz_x+t_x][igrok_poz_y+t_y];
	//что что там на две клетки дальше?
	str_t2 = stage_arr[igrok_poz_x+t_x*2][igrok_poz_y+t_y*2];
	//если впереди игрока предмет и за ним пустое место
	if (str_t.substr(0, 1) == "b" and str_t2.substr(0, 1) == "_") {
		//двигаем игрока
		stage_mc.igrok_mc._x += 20*t_x;
		stage_mc.igrok_mc._y += 20*t_y;
		//двигаем предмет
		eval("stage_mc."+str_t)._x += 20*t_x;
		eval("stage_mc."+str_t)._y += 20*t_y;
		//освобождаем место в массиве
		stage_arr[igrok_poz_x+t_x][igrok_poz_y+t_y] = "_";
		//прописываем в массиве предмет на новом месте
		stage_arr[igrok_poz_x+t_x*2][igrok_poz_y+t_y*2] = str_t;
		//позиция игрока
		igrok_poz_x += t_x;
		igrok_poz_y += t_y;
		//счетчик ходов
		step_txt++;
		//проверка .. может уже все ок
		isComplete();
	} else {
		//если свободно впереди
		if (str_t.substr(0, 1) == "_") {
			//двигаем игрока
			stage_mc.igrok_mc._x += 20*t_x;
			stage_mc.igrok_mc._y += 20*t_y;
			//и его позицию меняем
			igrok_poz_x += t_x;
			igrok_poz_y += t_y;
			//счетчик ходов
			step_txt++;
		}
	}
	//остался случай, если впереди стена - тут мы просто ничего не трогаем
}
//проверяем: все ли предметы там, где нужно
function isComplete() {
	//временная
	var flag = true;
	//в t_incr хранится колличество мишеней в уровне
	for (i=1; i<t_incr+1; i++) {
		//определяем координату одного из предметов
		var b_x = stage_mc["box_"+i]._x/20;
		var b_y = stage_mc["box_"+i]._y/20;
		//в массиве смотрим: над целью ди он?
		if (stage_t_arr[b_x][b_y] == "t") {
			//если там, то показываем перечёркнутый предмет предмет
			stage_mc["box_"+i].gotoAndStop(2);
		} else {
			//если нет - опускаем флаг, что уровень не пройден
			flag = false;
			stage_mc["box_"+i].gotoAndStop(1);
		}
	}
	//флаг поднят - уровень пройден 
	if (flag) {
		//вызываем функцию перехода на седующий уровень
		levelUp();
	}
}
//переход на седующий уровень
function levelUp() {
 
	//если текущий уровень не последний
	if (current_stage<stages_num-1) {
		current_stage++;
	} else {
		//если последний - переход на первый
		current_stage = 0;
	}
	//перерисовка
	drawStage(current_stage);
	//пишем номер уровня в текстовом поле
	level_txt = current_stage+1;
	//обнуляем счетчик ходов
	step_txt = 0;
}
Вот код, как я понимаю сейчас нижнего подчёркивания вообще нет (например _x, _root)

Старый 14.04.2010, 18:17
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 8  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Так у вас код во флашке написан. Здесь только переписывать с нуля.
Покажите свф, как там все выглядит, я попробую переписать на третий.
Только, если вам не к спеху, сейчас времени нет, а на выходных само-то

Старый 15.04.2010, 01:02
armastus вне форума Посмотреть профиль Отправить личное сообщение для armastus Найти все сообщения от armastus
  № 9  
Ответить с цитированием
armastus

Регистрация: Apr 2010
Сообщений: 25
KiL33 я отправил вам swf на эл. ящик, спасибо!

Старый 15.04.2010, 01:52
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 10  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Боюсь, что KiL33 всё-таки fla нужен, а не swf.

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

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

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


 


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


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