• 【ActionScript】ActionScript3.0对舞台组件的增删改查


    以一个样例来说明ActionScript3.0对舞台组件的增删改查

    例如以下图:


    在Flash执行的时候,通过脚本。斜向下生成text0-text9十个文本节点。

    提供两个功能。

    1、在右上角,用户输入要删除的节点,点击“删除”之后,而删除对应的文本节点。

    2、在下方,用户输入要移动的节点。然后输入合法的X与Y,则能够把节点移动到对应的地方。

    一、基本布局

    1、首先新建一个ActionScript3.0的Flash文件。

    之后如同《【ActionScript】ActionScript3.0的Helloworld》(点击打开链接)一样。使用Ctrl+F7打开组件面板。之后,使用Flash提供的组件,布置出例如以下图的布局。


    各个组件设置如同“移动”、“删除”等如图所看到的的text。把组件拖放到如图所看到的的位置。

    命名好如图所看到的的实例名字。

    当中text为“输入要移动的节点:text”、“输入要删除的节点:text”这两个Label不用设置实例名称,由于这两个Label是静态的,不打算通过脚本控制。

    为了好看。Label组件autoSize属性设置为Center。

    关键对TextInput输入框的属性设置,Edit1,Edit2这两个输入框。最大字符maxChars为1,输入的正則表達式restrict设置为[0-9]。意为仅同意输入一个数字,两个配合起来就是仅仅同意输入1到9。Edit3与Edit4的最大字符maxChars为3,输入的正則表達式restrict设置为[0-9]+,意为仅同意输入数字,两个配合起来就是仅仅同意输入1-3为数字。

    这样就能够防止用户输入奇奇怪怪的东西了。

    正則表達式是通用的。在《【JavaScript】利用正則表達式检查输入框输入的是否为网址》(点击打开链接)已经说过了。

    二、脚本编程

    之后就能够通过脚本编程了,在时间轴对第1帧右键,打开动作面板,输入例如以下脚本:

    import flash.text.TextField;
    
    var textFieldArr=new Array(10);//创建一个专门存放textField的数组
    for(var i:int=0;i<10;i++){//循环生成10个TextField
    	textFieldArr[i]=new TextField();
    	textFieldArr[i].name="text"+i;//设置TextField的实例名称,内文本。X与Y等
    	textFieldArr[i].text="text"+i;
    	textFieldArr[i].x=20*i;
    	textFieldArr[i].y=20*i;
    	addChild(textFieldArr[i]);//加入到舞台。
    }
    
    //Button1的点击事件
    Button1.addEventListener("click",function(){
    	var Node=getChildByName("text"+Edit1.text);//获取用户输入的文本。并查找这个节点
    	if(Node){//假设找到的话。才删除
        	removeChild(Node);//假设找不到,你还是要Flash删除。会报错。这个函数建立在存在这个节点之上
    	}
    });
    
    //Button2的点击事件
    Button2.addEventListener("click",function(){
    	var Node=getChildByName("text"+Edit2.text);
    	if(Node){//相同是找这个节点。推断是否存在这个节点
    		var moveFlag=true;
    		var errMsg="";
    		if(Number(Edit3.text)>500){//还要先推断用户输入的坐标是否过大,由于我们的舞台大小仅为550x400
    			errMsg+="x不得大于500!";
    			moveFlag=false;
    		}
    		if(Number(Edit4.text)>300){
    			errMsg+="y不得大于300!

    "; moveFlag=false; } if(Number(Edit3.text)<1){ errMsg+="x不得少于1!"; moveFlag=false; } if(Number(Edit4.text)<1){ errMsg+="y不得少于1。"; moveFlag=false; } if(moveFlag){//假设输入合法,则移动节点。实质就是改动其X与Y Node.x=Edit3.text; Node.y=Edit4.text; } else{//否则,在Label1输出错误信息 Label1.text=errMsg; } } });

    能够看到,ActionScript3.0对舞台组件的增删改查的核心语句是addChild、removeChild、getChildByName,与《【JavaScript】网页节点的增删改查》(点击打开链接)一样。能查就能改。

  • 相关阅读:
    Nodejs-原型链污染
    dpwwn-02靶机渗透
    dpwwn-01靶机渗透
    Bulldog1靶机渗透
    php+html实现用户登录退出
    DC4靶机
    vulnhub-Os-hackNos-3
    Linux系统解析XML中文乱问题
    idea添加database
    PL/SQL学习笔记
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5286921.html
Copyright © 2020-2023  润新知