如果单击的图像等于其匹配的单词,该如何调用函数?ActionScript3



当我的随机单词出现时,用户必须记住它,然后单击正确的相应图像。我正在尝试编写如果用户选择正确的图像,则运行的代码。我在数组中配对了单词和图像。我只是不确定如何调用此功能。

这是我到目前为止尝试的,但这不起作用。我是ActionScript3的新手

所有人都非常感谢!

这是您可以做到这一点的一种方法:请参阅代码注释

        basket.visible = false;
        //------ Home Button ------\
        backhome1btn.addEventListener(MouseEvent.CLICK, goback1Click);
        function goback1Click(event:MouseEvent):void{
            gotoAndStop("homepage");
        }
        //-------------------

        var score:int = 0;
        var items:Array = new Array(); //store all food items in array
        var wordsToShow:Array = new Array(); //store all words to show in array - this is the array that will keep track of which has been asked (or rather not asked yet)
        //to reduce redundant code, call this with each food item (below)
        function initFoodItem(item:MovieClip, word:String):void {
            item.word = word; //forget the array, just store the word on the image as a dynamic property
            item.addEventListener(MouseEvent.CLICK, foodClicked);
            items.push(item); //add to array
            wordsToShow.push(item); //add to array
            item.visible = false;
        }
        initFoodItem(oc, "Orange Juice");
        initFoodItem(sand, "Sandwich");
        //...repeat for all other food items
        //now randmize the words to show array:
        wordsToShow.sort(function(a,b):int {
            return(Math.random() > .5) ? 1 : -1;
        });
        var curAnswer:MovieClip; //a var to store the current correct answer
        //this does the next question per se
        function displayWord():void {
            if(wordsToShow.length < 1){
                //they've all been asked
                gotoAndPlay("gameoverpage");
                return;
            }
            curAnswer = wordsToShow.pop(); //assigns the last item in the array to the cur asnwer, and pop also removes that item from the array (so it won't get asked again)
            randomword.text = curAnswer.word; //assign the text to the word value of this item
            randomword.visible = true;
            remember.visible = true;
        }
        remember.addEventListener(MouseEvent.CLICK, readyClick);
        //when you click your ready button
        function readyClick(e:MouseEvent):void {
            //we have an array of all items, let's loop through it and change them all to be visible
            for (var i:int = 0; i < items.length; i++) {
                //items[i].alpha = 1; //alpha values are 0 - 1 in AS3
                items[i].visible = true; //use visible instead of alpha if just toggling visibility, it's more efficient
            }
            randomword.visible = false;
            remember.visible = false;
            bask.visible = true;
            notepape.visible = false;
            //! another reason to use visible instead of alpha = 0, is alpha = 0 items will still be clickable!  visible = false items cannot be clicked.
        }
        function foodClicked(e:MouseEvent):void {
            if (e.currentTarget == curAnswer) {
                //if the current target (the item clicked) is the same item as what we stored in curAnswer, you answered correctly, so do this:
                score += 10; //or however much you get for answering correctly
                gotoAndStop("listpage"); //not sure what this does?
                displayWord();
            }else {
                //wrong
                gotoAndStop("gameoverpage");
            }
        }

最新更新