stage与root
来源:互联网 发布:淘宝海外买手直播 编辑:程序博客网 时间:2024/04/26 18:49
当创建Flash文档文件时,系统会自动创建舞台和主时间轴这两个对象,舞台和主时间轴都属于容器.那么是舞台包含主时间轴呢? 还是主时间轴包含舞台呢?
在ActionScript 3.0中,舞台做为顶级容器,所有的显示对象都直接或间接的包含在舞台中.所以主时间轴也包含在其中.
默认情况下,主时间轴位于舞台的左上方,如果不用程序去改变主时间轴的位置,主时间轴将永远位于舞台的左上方.
变量stage与舞台
舞台有自己的名字:stage. 这个名字实际上是变量名,即stage是控制舞台的变量. 通过stage就可以动态的控制舞台. 由于stage是系统自定义的,所以就不需要用户再去定义,因此可以直接使用变量stage.
// 输出stage=[object Stage] ,object代表对象,Stage表示类. 所以stage是Stage类的对象.
trace("stage="+stage);
类可以看出是创建对象的模板,既舞台stage是由Stage类创建的. 因此以后就可以把舞台成为舞台对象了.实际上, 任何变量都与类有关.当用trace函数输出变量时,会自动调用toString()方法. 对于不同的类,它的toString()方法返回的信息就有所不同. 像Stage类的toString()方法返回的是"[object 类名]"的信息.
舞台是保存数据的容器,并且舞台容器中又有很多小的容器,所以舞台是容器的容器.通过这种容器的嵌套,就可以保存非常复杂的数据. 像这种复杂数据的东西一般被称为负责对象.要访问对象中的变量,需要使用点语法,形式如下:
对象名.变量名
例如,对于舞台这个复杂对象来说,它的对象名就是stage,可以用下面的代码来定义和访问舞台中的变量:
//定义舞台的帧频
var frameRate = 12;
//定义舞台的宽和高
var stageWidth = 550;
var stageHeight = 400;
//访问stageWidth变量
trace("舞台的宽度:" + stage.stageWidth);
对象中的变量在面向对象编程中称为属性, 属性由属性名和属性值组成. 属性名其实就是变量名,属性值就是变量值. 访问对象的属性的形式为:
对象名.属性名
应当说明的是,舞台的帧频,宽高是在[属性]面板中设置的,而与前面用var定义的孤立(root)变量的设置无关.而通过点语法虽然可以读取舞台容器中的非孤立变量值,但是由于Flash为这些变量规定了只读属性,所以暂时尚无法通过类似"stage.stageWidth = 800"这样的语句为舞台中的变量重新赋值.
变量root与主时间轴
主时间轴与舞台类似,也是容器的容器.即变量root保存的也是复杂数据,主时间轴也是用类创建的.管理主时间轴的类叫MainTimeline类.
//输出root = [object MainTimeline]
trace("root = "+root);
前面写的代码都是在帧的[动作]面板中, 所以定义的变量都应属于主时间轴.可以这样认为,写在帧中的变量都在MainTimeline类中,而root是由MainTimeline类创建的对象,这些变量都成了root的属性,因此可以用"root.属性"的形式来访问这些变量. 例如:
//定义变量
var speed = 10;
//直接访问变量
trace("speed="+speed);
//把变量当成属性访问
trace("speed="+root.speed);
另外,MainTimeline类是动态类, 由动态类创建的root可以动态地添加属性:
//向root动态添加属性propl
root.prop = 5;
//尝试直接访问propl
trace(prop);
//通过点语法访问
trace(root.prop);
从上面测试的两段程序可以看出,在主时间轴上用var定义的变量会呗添加到MainTimeline类中,成为主时间轴root的属性, 而通过root动态添加的属性并没有添加到MainTimeline类中.
这里特别要注意,Stage类不是动态类,不能向舞台stage动态的添加属性,下面的代码是错误的:
stage.prop = 5;
另外,由类创建对象的过程称为实例化,所以由类创建的对象也称为实例.因此, 可以称舞台stage是Stage类的实例,主时间轴root是MainTimeline类的实例.
- stage与root
- stage和root
- [AS3]root,this,stage关系
- flash中Stage,stage,root和this的区别用法
- AS3中root,this,stage关系
- root, stage and timeline in ActionScript3.0
- as3 中 stage.stageWidth 与stage.width 的区别
- flash中stage,document,root以及this的区别应用
- javafx官方文档学习之一Application与Stage,Scene初探
- Spark DAG stage与 Drill DAG execution tree
- spark源码之Job执行(1)stage划分与提交
- spark源码之Job执行(1)stage划分与提交
- javafx.stage.Stage
- javafx.stage.Stage方法
- Player/Stage
- stage 双击
- stage.width|stage.height|stage.stageWidth|stage.stageHeight区别
- stage video
- unix环境高级编程-4.8-umask函数
- 今天写一个JSP+Oracle的项目,遇到了 Listener refused the connection with the following error:ORA-12519:
- delete与delete[]需要注意的地方
- 内联函数和虚函数
- 通过uboot烧写yaffs文件系统
- stage与root
- c++学习总结
- linux笔试题
- Taglib中常用的属性值与tld常用标签简介与web.xml设置自定义标签的uri
- C++程序员应聘常见面试试题深入剖析
- No configuration found for the specified action警告总结
- strtus1.2实现上传下载文件
- 网站上传容易忽视的错误
- Android学习历程之四 Animation初识一