H5前端
1.请列举出你知道的白鹭用于显示对象的类名
白鹭引擎(Egret)是一个用于构建2D游戏的HTML5游戏引擎。白鹭 egret 显示对象的主要类包括:
- DisplayObject - 这是所有显示对象的基础类,提供了一些基本属性,比如 x, y, width, height, visible 等。
- DisplayObjectContainer - 这是一个可以包含其他显示对象的容器类。它继承自 DisplayObject,并添加了子对象管理的方法,如 addChild, removeChild 等。
- Sprite - Sprite 类是 DisplayObjectContainer 的子类,通常用于创建具有多个子对象的复杂图形。
- Bitmap - Bitmap 类用于显示位图图像。它可以加载外部图像文件或者使用已经加载的图像数据。
- BitmapData - BitmapData 类用于处理图像数据,可以用来直接操作像素。
- TextField - TextField 类用于显示文本。它可以设置文本内容、字体、颜色、大小等属性。
- Shape - Shape 类用于绘制矢量图形,如矩形、圆形、线条等。
- MovieClip - MovieClip 类用于播放动画序列,通常由外部工具(如 Adobe Animate)导出的 SWF 文件加载。
- ScrollView - ScrollView 类用于创建可滚动的视图区域,常用于显示超出屏幕大小的内容。
- TilingSprite - TilingSprite 类用于创建可以平铺的图像,常用于背景或者需要无限滚动的场景。
这些类是白鹭引擎中用于显示对象的核心类,开发者可以使用它们来创建和管理游戏中的图形和动画。
2.大概说一下显示列表的概念,并且说说白鹭是怎么控制显示对象的层次的。
显示列表是白鹭引擎中用于管理和显示图形对象的一个树状结构。在这个结构中,每个节点都是一个显示对象(DisplayObject),可以是Bitmap、Sprite、Shape等。这些显示对象可以包含在容器对象中,如DisplayObjectContainer,从而形成了一个层次结构。
在白鹭引擎中,显示列表的概念类似于Flash中的显示列表,它定义了如何在屏幕上渲染和显示这些对象。显示列表中的每个对象都有一个索引位置,这个位置决定了对象在屏幕上的绘制顺序。对象在显示列表中的顺序是根据它们被添加到容器中的顺序来确定的,首先添加的对象会被渲染在最下面,最后添加的对象会被渲染在最上面。
白鹭引擎通过以下几种方式来控制显示对象的层次:
- addChild() 方法:将一个显示对象添加到显示列表的末尾,即最顶层。
- addChildAt() 方法:将一个显示对象添加到显示列表中的指定索引位置。
- removeChild() 方法:从显示列表中移除一个特定的显示对象。
- removeChildAt() 方法:从显示列表中移除指定索引位置的对象。
- setChildIndex() 方法:改变显示对象在显示列表中的索引位置,从而改变渲染顺序。
- swapChildren() 方法:交换两个显示对象在显示列表中的位置。
通过这些方法,开发者可以动态地添加、移除和改变显示对象在显示列表中的顺序,从而控制它们在屏幕上的层次关系。这种层次关系不仅影响对象的显示顺序,还影响到对象的点击事件处理等交互行为。
3.为使图片拉伸变大而不变形,应该对图片做什么处理。简述原理。
为了使图片在拉伸变大的过程中不变形,我们需要保持图片的原始宽高比。这可以通过设置图片的缩放模式来实现。在白鹭引擎中,可以通过设置 DisplayObject 的
scaleX
和scaleY
属性来控制图片的水平和垂直缩放。以下是保持图片宽高比的原理和步骤:
保持宽高比