![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2010
Сообщений: 25
|
Вопрос такой появился: нашёл код на 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 |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
http://help.adobe.com/ru_RU/AS3LCR/F...migration.html
Программ естественно никаких нет и быть не может. |
|
|||||
|
Выложите код, посмотрим.
|
|
|||||
|
Регистрация: Apr 2010
Сообщений: 57
|
Цитата:
Последний раз редактировалось udaaff; 14.04.2010 в 11:41. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
|
|
|||||
|
Регистрация: Apr 2010
Сообщений: 57
|
ну смотря какой код был на АС1 если он прототипы писал то незнаю
. Ну а если просто набор функций то может быть. |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 25
|
//устанавливаем качество в "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; } |
|
|||||
|
Так у вас код во флашке написан. Здесь только переписывать с нуля.
Покажите свф, как там все выглядит, я попробую переписать на третий. Только, если вам не к спеху, сейчас времени нет, а на выходных само-то ![]() |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 25
|
KiL33 я отправил вам swf на эл. ящик, спасибо!
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Боюсь, что KiL33 всё-таки fla нужен, а не swf.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 11:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|