以一个样例来说明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】网页节点的增删改查》(点击打开链接)一样。能查就能改。

【ActionScript】ActionScript3.0对舞台组件的增删改查的更多相关文章

  1. 模拟admin组件自己开发stark组件之增删改查

    增删改查,针对视图 我们需要modelform来创建,可自动生成标签,我们还要考虑用户是不是自己定制,依然解决方法是,继承和重写 app01下的joker.py文件 class BookModelFo ...

  2. Spring4.0+Hibernate4.0+Struts2.3整合包括增删改查案例,解决整合中出现的异常

    源码下载:http://download.csdn.net/detail/cmcc_1234/7034775 ======================Application.xml======== ...

  3. mysql5.0.x统计每秒增删改查替换数及系统每秒磁盘IO

    转载自:http://blog.chinaunix.net/uid-9370128-id-393082.html 1. mysql 5.0.x 统计每秒增,删,改,查,替换数  mysql 的show ...

  4. yii2.0中数据缓存之增删改查

    public function actionSss(){ /* * 获取到缓存 * 这里是获取的是根目录下 的common/main.php中的缓存类组件 * */ $cache=\Yii::$app ...

  5. VUE2.0增删改查附编辑添加model(弹框)组件共用

    Vue实战篇(增删改查附编辑添加model(弹框)组件共用) 前言 最近一直在学习Vue,发现一份crud不错的源码 预览链接 https://taylorchen709.github.io/vue- ...

  6. koa+mysql实现增删改查-全栈之路(001)

    Date: 2020-4-23 以前很少写文章,从今天开始我要挑战一下自己,连续输出100篇技术类文章.这100篇文章我尽量以实战案例为主. 如果你觉得本文还不错,记得关注或者给个 star,你们的赞 ...

  7. JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...

  8. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一)

    前言:出于某种原因,需要学习下Knockout.js,这个组件很早前听说过,但一直没尝试使用,这两天学习了下,觉得它真心不错,双向绑定的机制简直太爽了.今天打算结合bootstrapTable和Kno ...

  9. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面

    前言:上篇介绍了下ko增删改查的封装,确实节省了大量的js代码.博主是一个喜欢偷懒的人,总觉得这些基础的增删改查效果能不能通过一个什么工具直接生成页面效果,啥代码都不用写了,那该多爽.于是研究了下T4 ...

随机推荐

  1. yii2源码学习笔记(九)

    Application是所有应用程序类的基类,接下来了解一下它的源码.yii2\base\Application.php. <?php /** * @link http://www.yiifra ...

  2. Apache 多站点(虚拟主机)

    普遍 apache多站点(灰色(连接一起的红色)字体 为命令) 编辑文件:httpd.conf 找到以下内容: # Virtual hosts # Include /private/etc/apach ...

  3. NET平台和C#

    .NET平台和C#编程 一.深入.NET框架 1..NET框架具有两个组件:CLR(公共语言运行时)和FCL(框架类库),CLR是.NET框架的基础 2.框架核心类库: System.Collecti ...

  4. C# Dispose Finalize

    比较值得参考的文档:http://www.jb51.net/article/37214.htm. .NET 的内存管理过程: 托管堆假设内存无限大,线性连续分配内存: 实际内存不够使用时,遍历托管堆对 ...

  5. win32画线考虑去锯齿

    整理日: 2015年2月16日 这几天一直在研究win32 SDk下画线去锯齿,之前一直用的QT的画线接口函数,里面有去锯齿的效果,可是突然项目要求不能用QT的只能用win32 SDK下的GDI画线接 ...

  6. ruby定时脚本

    ruby定时脚本的实现涉及到三个方面: 要定时执行的代码 定时控制(设置定时的时间) 将脚本后台化 实例: # in func.rb def func # the function body goes ...

  7. nutch-1.7 编译

    转载自:http://peigang.iteye.com/blog/1563288 从nutch-.3开始 本地抓取(单击) 和 分布式抓取(集群)所使用的配置文件和命令单独分开. 资源:下载地址:h ...

  8. 玩转C++运算符重载

    运算符重载语法:返回值类型  operator运算符(参数列表) {  代码逻辑... } C++中的运算符重载是通过函数来实现的,可以将重载的运算符看作是类成的一个成员函数,向普通函数一样调用.如重 ...

  9. 浅谈JS DDoS攻击原理与防御

    分布式拒绝服务攻击(DDoS)攻击是一种针对网站发起的最古老最普遍的攻击.Nick Sullivan是网站加速和安全服务提供商CloudFlare的一名系统工程师.近日,他撰文介绍了攻击者如何利用恶意 ...

  10. SVN 修改URL路径|SVN 项目路径修改

    在svn的根目录下面右键 输入要修改的地址: 点击ok 搞定... ~~~