Flash教程:创建一个文档类(文档类) 浏览:400

检查:创建一个文档类(文档类)


现在我们对这个类有了一定的理解,然后,如果你真的使用它,看看它。有时候我会说基于3的SWF是多么的重要,因为3引入了一个新的概念,文档类(文档类)。


文档类是一个类从雪碧或MovieClip继承,并作为一个




创建文档类(文档类)


现在我们有了一定的了解,上课,然后看着它如果你真的使用它。有时我常说多么重要的SWF基于3,因为3引入了一个新的概念,文档类(文件级)。


文档类是一个类从雪碧或MovieClip继承,是主权财富基金的主要类。当SWF文件的读取,自动调用类的构造函数,它成为我们程序的入口,和你想做的事情,可以写上,如创建电影剪辑、绘图、阅读资源,等等。如果你写的代码在Flash CS3的IDE,你可以使用文档类,或者你可以选择继续在时间轴上写代码,但是如果你使用Flex Builder 2或免费的Flex SDK,没有时间轴,唯一的办法是写这类的工作都围绕着一个强大的文档类,没有它就没有SWF。以下是一个文档类框架:


包{
进口flash.display.sprite;
公共类测试扩展精灵{
公共功能测试(){
init();
}
私有函数init():无效{
写入代码
}
}
}


如果你看了前面的部分,你不认为这是一个新的知识,让他们在一起,使用默认的包,进出继承Sprite类的构造函数只有一句话,和init方法调用。当然,你也可以在构造函数编写所有的代码,但是养成一个好习惯是减少构造函数中的代码,所以写的代码转换成另一种方式。这本书将给你很多代码块测试。在那个时候,我们应该像上面的例子那样把代码块放在init方法中,这样当电影被编译和执行时,它将调用init中的代码。现在我们开始学习如何连接文档类和SWF。


使用Flash CS3 IDE(集成开发环境)


Flash CS3 IDE是实现文档类的最方便的工具。选择一个以上的类来保存文件夹和文件命名为test.as.open Flash CS3,创建FLA文件,并保存到一个目录中的一类。确认FLA默认发布设置为Flash Player 9和3。在属性面板中,我们注意到一个叫文档类区(图2-1)。只要输入类别名称:测试。


图2-1设置文档类


请注意,我们输入类名,而不是文件名。所以没有必要进入extension.as.if这类包含在包中,那么你需要输入完整的类路径mdash;mdash;例如,com.friendsofed.chapter2.test。


程序动画


其次,学习一些基本的原则是3编程。如果你选择了一个开发环境,然后开始。让我们进脚本动画世界。


动画的执行


几乎所有的程序的动画,包括几种不同的执行流程,逐格动画,这意味着创建和存储一组连续的位图,这是每一个图像,只会显示,如图2-3所示。


图2-3帧动画


当我们在Flash中使用图形或组件时,事情会发生微妙的变化,此时,Flash不会为每个帧创建和存储一个新位图。每个帧只存储球在框架上的位置。第一帧的位置是左边的第十个像素,第二帧可以是第十五个像素,flash播放器(flash播放器)读取信息并呈现阶段,并根据信息的描述显示帧。


图2-4渲染和显示帧


我用这种方式描述了一个动态的程序动画,如图2-5所示。


图2-5脚本动画


如图2-5所示,如果没有第一帧和第二帧的概念,脚本动画通常只在一帧中完成。


首先,初始化设置,在舞台上放一个电影剪辑,创建一个修补动画,或者用代码来描述整个场景。
然后,自定义规则被应用,规则可以像让球移动到右边的5像素,这很简单,可以由几十个复杂的三角函数组成,使用自定义规则产生基于这些描述的呈现和显示的新的描述,并且规则不断地被应用。


请注意,同样的规则一次又一次地被执行,而不是使用第一帧的一组规则和第二帧的另一组规则。所以困难是一组规则处理所有可能的情况。如果球移动太远到右边,超出舞台你的规则将解决这个问题。你想让用户用鼠标操作球吗那么你的规则必须考虑进去。
听起来很复杂,但它不是,这里;规则;事实上,它的Actionscript代码。每个规则组可以由一个或更多行的代码。这里是5像素移动球到正确的一个例子:
球。x =球。x 5;
也就是说,无论球x坐标(水平轴)在何处,都要在原来的x坐标中加上5个像素,以坐标作为新的x坐标,也可以简化如下:
球,x=5;
运算符:将右边的值添加到左边的变量中,并将结果添加到变量中:


VaR的DX:数量= mouseX球X;
无功动态:数量=鼠标球。Y;
变量:数字= DX *弹簧;
数字:春天;
VX = AX;
vy =是的;
vy =重力;
VX =摩擦;
vy =摩擦;
球。x = VX;
Y = Vy的球;
Graphics.clear();
(1)graphics.linestyle;
Graphics.moveTo(球球。X,Y);
Graphics.lineTo(mouseX,老鼠);


现在没关系。你只知道Flash会在每个帧中生成这个代码,并不断地执行它。


如何使之流通看看我的第一次尝试,这也是许多初学者所犯的错误,这是一种循环结构,存在于许多编程语言中,比如说,等等,重复使用循环结构的代码就是我写的。


对于(i = 0;i < 500;i){
球;
}


它看起来很简单,变量i从0开始,所以球X坐标移动到0mdash;mdash;舞台左侧。我使i的值每增加1,即0 ~ 1到2 ~ 3 4hellip;每次这个值将球的价值。X,把球从左到右。当该值为500,表达我的<< 500值为假(false),和循环结束。


如果你也犯了同样的错误,你知道,球没有在舞台上正移;mdash;突然出现在舞台上的权利。为什么不搬到中间点吗事实上,它移动了,但我们没有看到,因为我们不让Flash刷新屏幕。


图2-6为什么循环结构不产生动画


事实上,我们使用自定义规则将球移动到指定位置并创建500个新场景。但是在循环结束之前没有显示,这是因为Flash在每帧之后只刷新一次是很重要的:




把所有的物体放在舞台上,不管水平、图层还是加载的胶片。

所有的动作脚本(Actionscript)在执行框架,无论什么样的水平和层次,在影片剪辑或按钮,或无论他们是嵌套。

判断它是否在显示的时候,如果帧速率是20帧/秒,Flash将至少等待最后一帧50毫秒,然后再显示出来。在显示帧后,它将编译并输入下一帧。如果帧速率达不到每秒20帧,那么正确的时间就等待再次执行。



时间上有一些问题。首先,众所周知,帧频率是不准确的(即使是在Flash 9),也不依赖于它作为一个精确的计时器。第二,大量编译和执行时所花费的时间将超过规定的时间。


尽管如此,我们不需要担心我们的脚本被切断,进入第三步之前,Flash将完成所有可执行代码(第二步),即使帧频需要延迟。为了完成剧本,Flash会等待15秒。在上面的例子中,Flash等待循环的结束,然后进入下一帧,并刷新屏幕时只有当它跳到下一帧。这就是为什么我们看到一跳,不动。因此,为了完成转会,我们所要做的就是打破这个循环,见图2-5。
推荐文章1
广告