|
|
|||||
Не выполняется условие if в классе
Почему код выше не выполняет вот это действие objF1CDelete();
MainClass - класс присвоенный комнате. Последний раз редактировалось WinSTOP; 09.04.2013 в 15:22. |
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
Слишком вырвано из контекста. И в программировании нет понятия "комната". Откуда нам знать, что там у тебя "комната"? И нельзя "класс" присвоить "комнате". Можно экземпляр класса присвоить "комнате".
Это не то, чтобы я понтовался или придирался к мелочам. Правильная терминалогия очень важна, когда ты пытаешься объяснить свою проблему другим. Чем понятнее объяснишь - тем быстрее помогут. То же самое касается именования переменных(конкретно у тебя с именованием все впорядке) и отступов. Это не для тебя. Это для других, чтобы им было легче читать твой код и помогать тебе. Так что пока - непонятно. Или больше кода покажи, или исходник, или раставь хотя бы трейсы вот, скажем так: Чтобы было понятно, вообще вызывается ли функция-конструктор и чему равняется brain1 в этот момент.
__________________
мой пустой блог |
|
|||||
Вот весь код.
package { import flash.events.MouseEvent; import flash.display.MovieClip; public class MainClass extends MovieClip { //Переменные public var brain1:Number = 0; public var brain2:Number = 0; // public function MainClass() { //Обработка нажатия мышки на объект obj1.addEventListener(MouseEvent.MOUSE_DOWN, objF1); obj1C.addEventListener(MouseEvent.MOUSE_DOWN, objF1C); obj2.addEventListener(MouseEvent.MOUSE_DOWN, objF2); obj3.addEventListener(MouseEvent.MOUSE_DOWN, objF3); // obj1.stop(); obj1C.stop(); obj2.stop(); obj3.stop(); // if((brain1 == 1) && (brain2 == 2)){objF1CDelete();} } //Функции нажатия на объект public function objF1(event:MouseEvent):void{ obj1.gotoAndStop(2); brain1 =1; trace(brain1); } public function objF2(event:MouseEvent):void{ obj2.gotoAndStop(2); } public function objF3(event:MouseEvent):void{ obj3.gotoAndStop(2); } public function objF1C(event:MouseEvent){ obj1C.gotoAndStop(2); brain2 = 2; trace(brain2); } private function objF1CDelete(){ obj1.parent.removeChild(obj1); } } } |
|
|||||
Я куда ток не вставлял и в функцию, и за функцию, то ошибка то ещё что нибудь. Так правильно как будет?
|
|
|||||
Если можно, то подскажите. Правильное ли у меня написание кода? Может где можно сократить и т.д. Название игры "найди две одинаковые картинки" см. рис. Конечно картинок будет штук 30.
|
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
Тебе нужно проверку выполнять, каждый раз, как ты меняешь brain1 или brain2.
package { import flash.events.MouseEvent; import flash.display.MovieClip; public class MainClass extends MovieClip { //Переменные public var brain1:Number = 0; public var brain2:Number = 0; // public function MainClass() { //Обработка нажатия мышки на объект obj1.addEventListener(MouseEvent.MOUSE_DOWN, objF1); obj1C.addEventListener(MouseEvent.MOUSE_DOWN, objF1C); obj2.addEventListener(MouseEvent.MOUSE_DOWN, objF2); obj3.addEventListener(MouseEvent.MOUSE_DOWN, objF3); // obj1.stop(); obj1C.stop(); obj2.stop(); obj3.stop(); } public function check ():void { if((brain1 == 1) && (brain2 == 2)){objF1CDelete();} } public function objF1(event:MouseEvent):void{ obj1.gotoAndStop(2); brain1 =1; check (); } public function objF2(event:MouseEvent):void{ obj2.gotoAndStop(2); } public function objF3(event:MouseEvent):void{ obj3.gotoAndStop(2); } public function objF1C(event:MouseEvent){ obj1C.gotoAndStop(2); brain2 = 2; check (); } private function objF1CDelete(){ obj1.parent.removeChild(obj1); } } } Не надо ничего изобретать с нуля. Если тебе так уж лень сесть и прочитать полноценную книгу по программированию, то гугли уроки по созданию игр и делай уроки, пытайся разобраться в их коде.
__________________
мой пустой блог |
|
|||||
Спасибо, щас разбираться времени нет, попозже отпишусь. Не работает почему то.
|
Часовой пояс GMT +4, время: 09:15. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|