Форум 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=133820)

Baellir 14.12.2009 01:28

Проблема импорта класса
 
Делаю шахматы. Соответсвенно решил создать класс фигура, наследующий от MovieClip.
Но при попытке компиляции выдает ошибку:
The class being compiled, 'CLfigure', does not match the class that was imported, 'chess.CLfigure'. class CLfigure extends MovieClip.
Пути вроде указал правильно, названия соответствуют.
Поршу помочь.

udaaff 14.12.2009 01:41

Пакет в классе самом прописан?

Baellir 14.12.2009 13:42

Цитата:

Пакет в классе самом прописан?
Глупо получилось. Полтора часа возился с этим, а на деле надо было приписать chess. Спасибо.

P.s. тему не закрывайте пока, скорей всего еще пондобится :)

Baellir 21.12.2009 12:19

Тек-с, снова я туплю.
В классе есть функция, проверяющая/перемещающая фигуру. Проблема в том, что отсюда я не могу изменить свойство _coFigure клетки (не происходит вообще ничего).Из основного клипа все работает. Клетки создаются в двумерный массив Cells в основном клипе.
Вот сама функция
Код AS1/AS2:

public function check (pX,pY:Number):Void{
        var oX, oY:Number;
        oX =eval(_global.ActiveFigure)._x -15;
        oY =eval(_global.ActiveFigure)._y-15;
          if(  (oY-pY==60) and (oX==pX)){
        eval(_global.ActiveFigure)._y=pY+15;
        _global.Cells[pX/60][(8-pY/60)]._coFigure = eval(_global.ActiveFigure);
        _global.Cells[oX/60][(8-oY/60)]._coFigure = "none";
        _global.ActiveFigure="none";
        }                                                                                                };

Очень нужна помощь. Как правильно обратиться к массиву в главной сцене из класса? :)

Chuck607 21.12.2009 13:22

может _root поможет ?

Baellir 22.12.2009 21:49

Гм-м, возможно в actionScript создать свой тип данных?

udaaff 22.12.2009 21:51

Класс -- это и есть тип.

Baellir 22.12.2009 21:59

эм-м. Разве?
Мне нужен тип данных (integer) в котором я смогу хранить пару координат x,y.
то есть одна переменная типа "мой_тип", в которой я буду хранить пару координат. Как запись в Object Pascal.
(не спрашивайте зачем, это тупо, но так надо)

udaaff 22.12.2009 22:11

Есть класс flash.geom.Point.
Можете свой Point написать. Создайте класс со свойствами x и y. Какие проблемы?

Baellir 22.12.2009 22:17

Де-е, сложно (во многом из-за постановки задачи).

В любом случае большое спасибо за ответы :)

Baellir 27.12.2009 15:33

Вложений: 1
И снова здравствуйте :)
Нужен конструктор для класса, который бы делал то же самое, что и нижеследующий код.
Код AS1/AS2:

 
 
for (var j=0; j<8; j++)        {
        this[eval(figureblack[j])] = Figures.attachMovie(figureclassset[j], "B"+figureset[j], Figures.getNextHighestDepth(), {_x:(j*60), _y:0});
        this[eval(figureblack[j])].onRelease = Testf;
        Cells[j][0]._coFigure = "B"+figureset[j];
 
        this[eval(figurewhite[j])] = Figures.attachMovie(figureclassset[j], "W"+figureset[j], Figures.getNextHighestDepth(), {_x:(j*60), _y:420, _fcolor: "black"});
        this[eval(figurewhite[j])].gotoAndPlay(2);
        Cells[j][7]._coFigure = "W"+figureset[j];
        this[eval(figurewhite[j])].onRelease = Testf;
}
        //Setup figures End
  //-

Архив с классом и кодом прикрепил к сообщению.

Hauts 27.12.2009 15:41

Лучше напишите "не могу разобраться, как сделать конструктор..."
Всем что-то нужно.

Baellir 27.12.2009 16:37

Цитата:

Лучше напишите "не могу разобраться, как сделать конструктор..."
Дык, в этом и проблема. Я не смог его сделать - туева хуча ошибок.
То есть у меня не получилось обратиться к объекту вне класса. + Я новичок :)

iflamberg 27.12.2009 17:06

ну покажите, что у вас получилось, не стесняйтесь, здесь все свои, все свои.

Baellir 28.12.2009 11:06

Дык, просто в классе сделал функцию create.
в функции все тоже самое, только префикс ("B" или "W") и j задается переменной и проверка перед
gotoAndPlay.

Добавлено через 5 часов 21 минуту
Де, безуспешно.
У меня нет идей :(

Baellir 06.01.2010 17:48

Столкнулся со странной проблемой.
Вот создание и размещение фигурок на доске. Там же задается цвет.

Код AS1/AS2:

 
 var ActiveFigure: String;
 var figureblack = new Array();
 var figurewhite = new Array();
 
 figureset= ["tower_1","knight_1","bishop_1","queen","king","bishop_2","knight_2","tower_2"];
 figureclassset = ["tower","knight","bishop","queen","king","bishop","knight","tower"];
 
//Пешки
for (var j=0; j<8; j++) {
        this["Wpeshka_" + (j+1)] = Figures.attachMovie("peshka", "Wpeshka_" + (j+1), Figures.getNextHighestDepth(), {_x: j*60, _y: 360, _first: true, _fcolor: "white"});
        this["Wpeshka_" + (j+1)].gotoAndPlay(2);
        this["Wpeshka_" + (j+1)].onRelease = Testf;
        this["Bpeshka_" + (j+1)] = Figures.attachMovie("peshka", "Bpeshka_" + (1+j), Figures.getNextHighestDepth(), {_x: j*60, _y: 60, _first: true, _fcolor: "black"});
        this["Bpeshka_" + (j+1)].onRelease = Testf;
}
//Остальные фигуры       
for (var j=0; j<8; j++) {
        this[eval("B"+figureset[j])] = Figures.attachMovie(figureclassset[j], "B"+figureset[j], Figures.getNextHighestDepth(), {_x: j*60, _y: 0, _fcolor: "black"});
        this[eval("B"+figureset[j])].onRelease = Testf;
        this[eval("W"+figureset[j])] = Figures.attachMovie(figureclassset[j], "W"+figureset[j], Figures.getNextHighestDepth(), {_x :j*60, _y: 420, _fcolor: "white"});
        this[eval("W"+figureset[j])].gotoAndPlay(2);
        this[eval("W"+figureset[j])].onRelease = Testf;
        }

Для примера выполняю следующее (при клике на фигуру)
Код AS1/AS2:

 
_global.ActiveFigure = this._name;
trace (_global.ActiveFigure+ " = " +this._name+" " +this._fcolor+ " = "+eval(_global.ActiveFigure)._fcolor);

проблема в том, что для пешки выдает следующее:
Wpeshka_2 = Wpeshka_2 white = white
А для остальных фигур:
Wknight_1 = Wknight_1 white = undefined

Почему так? ведь создаются абсолютно одинаково.


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

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