![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Dec 2014
Сообщений: 3
|
Я совсем недавно начал изучать ActionScript и это одна из моих первых программ.
var a:Number = 0; var b:Number = 0; var c:Number = 0; btnNo.visible = false; btnYes.visible = false; rec(); function rec():void { txtA.text = ""; txtB.text = ""; txtAns.text = ""; a = Math.round(Math.random()*10); b = Math.round(Math.random()*10); txtA.text = String(a); txtB.text = String(b); Chek1.addEventListener(MouseEvent.CLICK, j); function j(event:MouseEvent):void { c = Number(txtAns.text); if (a*b==c) { btnYes.visible = true; btnNo.visible = false; rec(); } else { btnNo.visible = true; btnYes.visible = false; } } } ввода решения, оператор условия воспринимает введенный ответ неверным постоянно (даже если он является правильным). Чтобы зациклить процесс (до бесконечности, т.к. я просто проверял работоспособность), я использовал рекурсию, возможно проблема из-за этого. Ребят, в общем, помогите пожалуйста, это очень срочно, а опытным юзерам, думаю, вообще труда не составит ![]() Буду рад любым вашим предположениям и подсказкам. Спасибо! Последний раз редактировалось Posonyak; 09.12.2014 в 23:27. |
|
|||||
|
Попробуйте так
var a:Number = 0; var b:Number = 0; var c:Number = 0; btnNo.visible = false; btnYes.visible = false; rec(); function rec():void { txtA.text = ""; txtB.text = ""; txtAns.text = ""; a = Math.round(Math.random() * 10); b = Math.round(Math.random() * 10); txtA.text = String(a); txtB.text = String(b); } Chek1.addEventListener(MouseEvent.CLICK, j); function j(event:MouseEvent):void { c = Number(txtAns.text); if (a * b == c) { btnYes.visible = true; btnNo.visible = false; rec(); } else { btnNo.visible = true; btnYes.visible = false; } } |
|
|||||
|
Регистрация: Dec 2014
Сообщений: 3
|
Огромнейшее спасибо, Samana!
![]() |
|
|||||
|
Banned
Регистрация: Aug 2014
Сообщений: 461
|
Вот, может пригодится.
package { import flash.display.Sprite; import flash.events.Event; import flash.events.FocusEvent; import flash.events.MouseEvent; import flash.events.TimerEvent; import flash.text.TextField; import flash.utils.Timer; public class Main extends Sprite { private static const PLAY_ANIMATION_STATE: String = "palyAnimationState"; private static const DEFAULT_ANIMATION_STATE: String = "defaultAnimationState"; private static const CORRECT_ANSWER_STATE: String = "correctAnswerState"; private static const NOT_CORRECT_ANSWER_STATE: String = "notCorrectAnswerState"; private static const DEFAULT_ANSWER_STATE: String = "defaultAnswerState"; private var _currentAnimationState: String = DEFAULT_ANIMATION_STATE; private var _answerState: String = DEFAULT_ANSWER_STATE private var _text: TextField = new TextField(); private var _question: TextField = new TextField(); private var _answer: TextField = new TextField(); private var _task: Object; private var _buttonAnswer: Sprite; private var _buttonNextQuestion: Sprite; private var _background: Sprite = new Sprite( ); public function Main() { super.addChild( _background ); super.addChild(_text); super.addChild(_question); super.addChild(_answer); _text.text = 'сколько будет '; _question.x = 100; _question.text = '0' + '*' + '0'; _answer.type = 'input'; _answer.condenseWhite = true; _answer.restrict = '0123456789'; _answer.maxChars = 3; _answer.x = 200; _answer.text = 'введите ответ'; _answer.addEventListener( FocusEvent.FOCUS_IN, answer_focusInHandler); _answer.addEventListener( FocusEvent.FOCUS_OUT, answer_focusOutHandler); _buttonAnswer = createButton( 50, 20, 0xE9D83A ); _buttonAnswer.addEventListener(MouseEvent.CLICK, buttonAnswer_clickHandler ); _buttonAnswer.x = 300; super .addChild(_buttonAnswer); _buttonNextQuestion = createButton( 50, 20, 0x6FD152 ); _buttonNextQuestion.addEventListener( MouseEvent.CLICK, buttonNextQuestion_clickHandler); _buttonNextQuestion.x = 350; super.addChild( _buttonNextQuestion ); _task = { }; defaultAnswerAnimation( ); nextTask( ); } private function buttonNextQuestion_clickHandler(event:MouseEvent):void { nextTask( ); } private function answer_focusOutHandler(event:FocusEvent):void { if ( _answer.text == '' ) { _answer.text = 'введите ответ'; } } private function answer_focusInHandler(event:FocusEvent):void { if ( _answer.text == 'введите ответ' ) { _answer.text = ''; } } private function buttonAnswer_clickHandler( event: MouseEvent ): void { if ( _answer.text == '' || _currentAnimationState == PLAY_ANIMATION_STATE || _answer.text == 'введите ответ' ) return; if ( isCorrectAnswer( ) ) { correctAnswer( ); }else { notCorrectAnswer( ); } } private function timer_timerCompleteHandler(event:TimerEvent):void { var timer: Timer = event.target as Timer; timer.removeEventListener(TimerEvent.TIMER_COMPLETE, timer_timerCompleteHandler ); afterAnomation( ); } private function correctAnswer( ): void { _answerState = CORRECT_ANSWER_STATE; correctAnswerAnimation( ); } private function notCorrectAnswer( ): void { _answerState = NOT_CORRECT_ANSWER_STATE; notCorrectAnswerAnimation( ); } private function afterAnomation( ): void { defaultAnswerAnimation( ); if ( _answerState == CORRECT_ANSWER_STATE ) { _answerState = DEFAULT_ANIMATION_STATE; _answer.text = 'введите ответ'; nextTask( ); }else if ( _answerState == NOT_CORRECT_ANSWER_STATE ) { _answerState = DEFAULT_ANIMATION_STATE; _answer.text = 'введите ответ'; } } private function nextTask( ): void { createTask( ); setTask( ); } private function isCorrectAnswer( ):Boolean { if ( _answer.text == String ( _task.answer ) ) return true; return false; } private function defaultAnswerAnimation( ): void { _currentAnimationState = DEFAULT_ANIMATION_STATE; _background.graphics.clear( ); _background.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); _background.graphics.beginFill(0x000000); _background.graphics.endFill( ); } private function correctAnswerAnimation( ):void { _currentAnimationState = PLAY_ANIMATION_STATE; _background.graphics.clear( ); _background.graphics.beginFill(0x81CC73); _background.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); _background.graphics.endFill( ); var timer: Timer = new Timer( 500, 1 ); timer.addEventListener(TimerEvent.TIMER_COMPLETE, timer_timerCompleteHandler ); timer.start( ); } private function notCorrectAnswerAnimation( ): void { _currentAnimationState = PLAY_ANIMATION_STATE; _background.graphics.clear( ); _background.graphics.beginFill(0xD06F6F); _background.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); _background.graphics.endFill( ); var timer: Timer = new Timer( 500, 1 ); timer.addEventListener(TimerEvent.TIMER_COMPLETE, timer_timerCompleteHandler ); timer.start( ); } private function setTask( ): void { _question.text = String( _task.firstMultiplier ) + '*' + String( _task.secondMultiplier ); } private function createTask( ): void{ _task.firstMultiplier = Math.round( Math.random() * 9 + 1 ); _task.secondMultiplier = Math.round( Math.random() * 9 + 1 ); _task.answer = _task.firstMultiplier * _task.secondMultiplier; } private function createButton( width: int = 50, height: int = 20, color: uint = 0xcccccc ):Sprite{ var button: Sprite = new Sprite(); button.graphics.beginFill(color); button.graphics.drawRect(0,0,width,height); button.graphics.endFill(); return button; } } } Последний раз редактировалось Gerbert; 10.12.2014 в 20:25. |
|
|||||
|
Регистрация: Dec 2014
Сообщений: 3
|
Благодарю, Gerbert
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|