亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于動作腳本的文本框交互式練習題

        2016-11-16 13:15:42蔣維
        電腦知識與技術 2016年25期

        蔣維

        摘要:該文介紹了在Flash中如何利用文本框和動作腳本實現隨機的加減乘除四則運算練習題,最后可統計出做題的時間以及查看練習結果等。

        關鍵詞:Flash;文本框;動作腳本

        中圖分類號:TP37 文獻標識碼:A 文章編號:1009-3044(2016)25-0056-03

        Flash的動作腳本ActionScript(簡稱AS)為我們提供了各種命令,運算符以及對象,我們可以使用AS在Flash中實現許多交互功能。Flash中有三種文本類型:靜態(tài)文本、輸入文本和動態(tài)文本,靜態(tài)文本僅僅用于輸入需要顯示的文字,輸入文本用于數據的輸入,動態(tài)文本內容根據AS的指示變化而變化。文本框除了利用Flash提供的文本工具創(chuàng)建外,還可以利用AS進行創(chuàng)建,利用文本工具只能在設計階段創(chuàng)建,比較直觀簡單,屬性設置可以利用屬性面板進行,利用AS可以在動作腳本運行期間動態(tài)創(chuàng)建,比較靈活,但使用的屬性設置只能通過代碼進行。本程序把創(chuàng)建文本的兩種方法相結合靈活的實現了練習題中的某些功能。

        1 程序的設計與實現

        1.1 程序實現的目標

        程序的主要目標是實現用戶能夠選擇做練習題的數目,程序根據用戶所選擇的練習題目數隨機的出加減乘除四則運算練習題。

        1.2 程序主要的處理函數

        1) Math.random()函數與Math.round()函數:這兩種函數結合使用產生隨機的運算數。

        2) addEventListener()函數:此函數是偵聽器函數或事件處理函數,本程序中用了addEventListener()函數的鍵盤事件處理和鼠標事件處理。

        3) String ()函數與Number ()函數:文本框中的數據是字符型數據,進行四則運算時需要數字型數據,利用這兩種函數可以實現數字和字符之間的轉換。

        4) gotoAndStop()函數與stop ()函數:本程序中stop()函數用來使Flash停留在當前幀,gotoAndStop()函數是用來跳轉到指定幀并停留在指定幀。

        1.3 程序的設計

        本程序共分為三個界面:在第一個界面上用戶可以輸入需要做的練習題的數目,只能輸入1-30之間的數值,輸錯會有提示,輸完題目數后,按開始答題按鈕進入第二個界面;在第二個界面上會先隨機出現第一道練習題,界面上方會顯示出共需要做幾道題,同時會顯示當前做的是第幾道題,當用戶輸完當前題目的計算結果按 enter鍵后,系統會自動隨機的出下一道任意類型的練習題,當最后一題做完后自動進入第三界面;在第三個界面上有兩個選擇按鈕,第一個按鈕是查看結果按鈕,點擊它可以查看所有做過的題目以及正誤判斷,第二個按鈕是重新做題按鈕,點擊它可以回到第一個界面重新開始做題,同時界面三上方會顯示出用戶做題所用的時間。

        1.4 程序的實現過程

        程序共分為三個界面,所以需要在新建的Flash文檔的時間軸面板的圖層1上創(chuàng)建三個關鍵幀,每一個關鍵幀實現一個界面的建立。

        1) 界面一的建立

        選中第一幀關鍵幀,在窗口舞臺上我們利用文本框和按鈕創(chuàng)建如下圖1的界面。

        打開動作面板輸入以下代碼:

        stop();

        var N,tishi;

        tishi=new TextField(); //生成文本域

        tishi.defaultTextFormat = new TextFormat("黑體",20,0xff0000); //設置文本格式

        tishi.x = 200; tishi.y = 200; //設置文本在舞臺上的位置

        mb.addEventListener(MouseEvent.CLICK ,f1); //設置按鈕mb的鼠標偵聽事件

        function f1(evt:MouseEvent)

        {N = Number(shumu.text); //把輸入文本框中內容轉成數字放入變量N

        if (N>30||N==0) //輸入數字錯誤分支

        { tishi.text = "請輸入1-30之間的數字!"; tishi.autoSize = TextFieldAutoSize.CENTER;

        addChild(tishi); gotoAndStop(1);}

        else { tishi.text = ""; } gotoAndStop(2); } //輸入數字正確分支

        2) 界面二的建立

        選中第二幀關鍵幀,在窗口舞臺上利用文本框創(chuàng)建如下圖2的界面,界面上顯示的文字和符號皆由靜態(tài)文本框完成,如上述圖1。

        打開動作面板輸入以下代碼:

        var timestart;

        var now:Date = new Date();

        timestart = now.hours * 3600 + now.minutes * 60 + now.seconds; //記錄做題開始時間

        var i=0,m,n,t,j = 0;

        var textStr:String = "+-×÷"; //定義符號字符

        txt1.text = String(Math.round(Math.random() * 100)); //隨機取初始算式的運算數1

        txt2.text = String(Math.round(Math.random() * 100)); //隨機取初始算式的運算數2

        fuhao.text = textStr.charAt(i); //取初始算式的運算符號

        j = j + 1;

        tishu.text = N; tihao.text = j; //記錄題目總數和題號數

        var TextSprite:Array = new Array(); //定義數組TextSprite,用于存放做題記錄

        var num = 0;

        txt.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown); //設置鍵盤偵聽事件

        function KeyDown(e:KeyboardEvent):void

        { if (e.keyCode == Keyboard.ENTER) //以下是按鍵盤上enter鍵所執(zhí)行的操作

        { num=Number(txt.text);

        TextSprite[j-1] = new TextField(); //數組TextSprite中每一元素生成一個文本域

        if((txt.text.length !=0)&&((i==0&&m+n==num)||(i==1&&m-n==num)||(i==2&&m*n==num)||(i==3&&m/n==num))) //判斷輸入內容是否與左邊算式相等

        {TextSprite[j - 1].text = txt1.text + fuhao.text + txt2.text + "=" + txt.text+" "+"√";}

        //輸入結果正確記錄下當前所做題目及答案并判斷為正確

        else

        {TextSprite[j - 1].text = txt1.text + fuhao.text + txt2.text + "=" + txt.text+" "+"×";}

        //輸入結果錯誤記錄下當前所做題目及答案并判斷為錯誤

        txt.text = ""; //清除上一次輸入的答案,為下一道題做準備

        m = Math.round(Math.random() * 100); //隨機取下一道題的運算數1放入變量m

        n = Math.round(Math.random() * 100); //隨機取下一道題的運算數2放入變量n

        i = Math.round(Math.random() * 3); //隨機取下一道題的運算符號的序號

        if (m

        while (i==3)

        { if (m%n==0&&n!=0){ break; }

        else

        { m = Math.round(Math.random() * 100); n = Math.round(Math.random() *100); }

        }//符號為除號時除法算式應沒有余數,如果取的數不滿足條件需要重新再取

        txt1.text = String(m); //運算數1賦給txt1

        txt2.text = String(n); //運算數2賦給txt2

        fuhao.text = textStr.charAt(i); //運算符號賦給fuhao

        j = j + 1; tihao.text = j; //取得當前題號

        if (j>N){ gotoAndStop(3); } //做完用戶輸入的題目數后轉到界面三

        }}

        3) 界面三的建立

        選中第三幀關鍵幀,在窗口舞臺上我們利用文本框和按鈕創(chuàng)建如圖3的界面。

        打開動作面板輸入以下代碼:

        var nowt:Date = new Date();

        yongshi.text = String(nowt.hours * 3600 + nowt.minutes * 60 + nowt.seconds - timestart);

        mb1.addEventListener(MouseEvent.CLICK ,f3); //設置按鈕mb1的鼠標偵聽事件

        function f3(evt:MouseEvent)

        {var d = 0;

        for (var k:uint=0; k

        { TextSprite[k].defaultTextFormat = new TextFormat("黑體",20,0xff0000);

        TextSprite[k].text = TextSprite[k].text;

        if (k%2==0){ TextSprite[k].x = mb1.x+100; TextSprite[k].y = mb1.y - 25 + d; }

        else{ TextSprite[k].x = mb1.x+250; TextSprite[k].y = mb1.y - 35 + d; }

        //if-else語句把TextSprite數組中的記錄結果分成奇偶兩列顯示

        TextSprite[k].autoSize = TextFieldAutoSize.LEFT;

        addChild(TextSprite[k]);

        d = d + 10;}}

        mb2.addEventListener(MouseEvent.CLICK ,f2); //設置按鈕mb2的鼠標偵聽事件

        function f2(evt:MouseEvent)

        {for (var k:uint=0; k

        gotoAndStop(1);}

        2 結論

        本文利用Flash的動作腳本實現了文本框交互式練習題,程序中需要注意幾點:第一,在CS3以上版本中,輸入文本框和動態(tài)文本框沒有字體只允許輸入顯示制作時輸入的數據,解決辦法是嵌入字體或是在文本屬性中改為使用設備字體;第二,本程序中的輸入文本框需在屬性面板中把輸入行設為單行;第三,可以添加一些動作腳本使程序更加完善,如:txt.restrict="0-9"限制輸入文本框只能輸入數字,txt1.borderColor = 0xff0000可設置文本框的外邊框顏色,txt1.backgroundColor = 0x00FF00可設置文本框的內部填充顏色,等等。把Flash的三種文本類型結合使用,可以制作出豐富多彩的文本框交互效果。

        參考文獻:

        [1] 劉本軍,李登豐. Flash ActionScript 3.0互動設計項目教程[M]. 北京:人民郵電出版社,2015:11.

        [2] 李林. FlashCS動畫制作教程[M].北京:清華大學出版社,2014:8.

        亚洲av日韩一卡二卡| 亚洲av美女在线播放啊| 北岛玲精品一区二区三区| 熟女免费观看一区二区| 国产免费观看黄av片| 性色av一区二区三区| 日韩高清无码中文字幕综合一二三区| 视频一区视频二区亚洲免费观看| 日本一区二区免费高清| 2019日韩中文字幕mv| 久久久久久av无码免费看大片| 亚洲国产日韩在线精品频道| 亚洲丰满熟女乱一区二区三区 | 高清午夜福利电影在线| www国产无套内射com| 国产av专区一区二区三区| 有码视频一区二区三区| 国产欧美成人一区二区a片| 99re久久精品国产| 激情人妻网址| 亚洲国产熟女精品传媒| 欧美日韩精品一区二区三区高清视频| 91av视频在线| 精品午夜中文字幕熟女| 人人妻人人澡人人爽国产| 中文字幕av一区中文字幕天堂| 久久亚洲av成人无码软件| 日韩精品一区二区亚洲观看av| 免费人成年激情视频在线观看| 在线观看免费午夜大片| 国产在线观看www污污污| 91国在线啪精品一区| 亚洲一区二区日韩精品| 国产精品无码av无码| 欧美色aⅴ欧美综合色| 国产一区二区在线观看视频免费| 不卡的高清av一区二区三区| 久久99热久久99精品| 国产成人精品日本亚洲直播| 在线成人影院国产av| 亚洲日韩国产一区二区三区在线|