FLASHのお勉強 ーアクションスクリプトの実践的事始めー

(54_2) フォームメールの作成用asファイル   2007/12/28

(actionscript3.0)

 actionscript3.0による、フォーム部品としての「テキストフィールド」「コンボボックス」「ラジオボタン」の作成についてはそれぞれ既に勉強している。 このページは、(54)フォームメールの作成に使う、ラベル作成用の makeLabel.as ファイルと、フォームメール用に手直しした、createTextField.as ファイルのスクリプトを記載した。
スクリプト
makeLabel.as ファイル
package {
        import flash.display.Sprite;
        import flash.text.*;
        import fl.controls.Label;
        
        public class makeLabel extends Sprite {
                public function makeLabel(ar:Array,arr:Array) {
                        var label:Label = new Label();
                        label.autoSize = TextFieldAutoSize.LEFT;
                        label.text = ar[0];
                        label.x = ar[1];
                        label.y = ar[2];
                        addChild(label);
                        var lbFormat = lbtxtFormat(arr);
                        label.setStyle("textFormat",lbFormat);
                }
                private function lbtxtFormat(arr:Array):TextFormat {
                        var format:TextFormat = new TextFormat();
                        format.font = arr[0];
                        format.size = arr[1];
                        format.color = arr[2];
                        format.bold = arr[3];
                        format.italic = arr[4];
                        return format;
                }
        }
}
createTextField.as ファイル
package {
        import flash.text.*;
        import flash.events.*;
        import flash.display.MovieClip;
        import flash.display.Sprite;

        public class createTextField extends Sprite {
                public var txtF:TextField = new TextField();
                public function createTextField(ar:Array,arr:Array,ptNum:Number,inputNum:Number) {
                        txtF.text = " ";
                        txtF.x = ar[0];
                        txtF.y = ar[1];
                        txtF.width = ar[2];
                        txtF.height = ar[3];
                        txtF.border = ar[4];
                        txtF.borderColor = ar[5];
                        txtF.background = ar[6];
                        txtF.backgroundColor = ar[7];
                        txtF.type = ar[8];
                        txtF.multiline = ar[9];
                        var tfFormat = textFormat(arr);
                        txtF.setTextFormat(tfFormat);
                        addChild(txtF);
                        function tfListener(event) {
                                var tfx:Number = txtF.x;
                                var tfy:Number = txtF.y;
                                setTextCheck(txtF.text,ptNum,tfx,tfy);
                        }
                        txtF.addEventListener("mouseFocusChange", tfListener);
                }
                private function textFormat(arr:Array):TextFormat {
                        var format:TextFormat = new TextFormat();
                        format.font = arr[0];
                        format.size = arr[1];
                        format.color = arr[2];
                        format.bold = arr[3];
                        format.italic = arr[4];
                        return format;
                }
                function setTextCheck(str:String,n:Number,tfx,tfy) {
                        if (n) {
                                var pt:String = this["pt"+n];
                                var msg:String = this["msg" + n];
                                var pattern:RegExp = new RegExp(pt);
                                textCheck(pattern,str,msg,n,tfx,tfy);
                        }
                }

                var alertB:MovieClip = new alertBox();
                var aBox:Boolean;
                function textCheck(pattern:RegExp,str:String,msg:String,n:Number,tfx:Number,tfy:Number) {
                        var str0:String = str.substr(0,1);
                        if ( str0 == " ") {
                                str = str.substr(1);
                        }
                        if (n==8) {
                                pattern = /^\d{2,3}-\d{1,4}-\d{4}$/;
                                var patternTest:Boolean = validateNumber(str,pattern);
                        } else if (n==9) {
                                pattern = /^\d{3}-\d{4}$/;
                                patternTest = validateNumber(str,pattern);
                        } else {
                                patternTest = pattern.test(str);
                        }
                        if (n==7) {
                                if (patternTest) {
                                        patternTest = false;
                                } else {
                                        patternTest = true;
                                }
                        }
                        if (patternTest) {
                                addChild(alertB);
                                alertB.x = tfx + 50;
                                alertB.y = tfy + 23;
                                alertB.msgBox.text = msg;
                                aBox = true;
                                txtF.text = " ";
                        } else if (aBox) {
                                removeChild(alertB);
                                aBox = false;
                        }
                        function removeBox(event) {
                                if (aBox) {
                                        removeChild(alertB);
                                        aBox = false;
                                }
                        }
                        alertB.addEventListener(MouseEvent.CLICK,removeBox);
                }
                private function validateNumber(str:String,pattern:RegExp):Boolean {
                        var result:Object = pattern.exec(str);
                        if (result == null) {
                                return true;
                        }
                        return false;
                }
                public function inputText():String {
                        var returnStr:String = txtF.text;
                        if (returnStr.substr(0,1)==" ") { returnStr = returnStr.substr(1); }
                        return returnStr;
                }
                //Check Pattern
                var pt1:String = "[^0-9]";
                var pt2:String = "[^a-zA-Z]";
                var pt3:String = "[^0-9a-zA-Z]";
                var pt4:String = "[^ァ-ン]";
                var pt5:String = "[^ぁ-ん]";
                var pt6:String = "[ -~]";
                var pt7:String = "([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}";
                var pt8:String = "[^\d{2,3}-\d{1,4}-\d{4}$]";
                var pt9:String = "[^\d{3}-\d{4}$]";

                var msg1:String = "半角数字で入力して下さい";
                var msg2:String = "半角英で入力して下さい";
                var msg3:String = "半角英数で入力してください";
                var msg4:String = "全角カナで入力下さい";
                var msg5:String = "全角ひらがなで入力下さい";
                var msg6:String = "全角文字で入力して下さい";
                var msg7:String = "メールアドレスが違っています";
                var msg8:String = "電話番号を見直して下さい";
                var msg9:String = "郵便番号を見直して下さい";
        }
}
 
flashirohaサイト内  Web全体 
HOME   お勉強総リスト