DisplayObject

DisplayObject 是 Next2D Player 中所有显示对象的基类。

属性

只读属性

属性类型说明
instanceIdnumberDisplayObject 的唯一实例 ID
isSpriteboolean返回是否具有 Sprite 功能
isInteractiveboolean返回是否具有 InteractiveObject 功能
isContainerEnabledboolean返回显示对象是否具有容器功能
isTimelineEnabledboolean返回显示对象是否具有 MovieClip 功能
isShapeboolean返回显示对象是否具有 Shape 功能
isVideoboolean返回显示对象是否具有 Video 功能
isTextboolean返回显示对象是否具有 Text 功能
concatenatedMatrixMatrix到根级别的组合变换矩阵
dropTargetDisplayObject | null精灵被拖动或放置到的显示对象
loaderInfoLoaderInfo | null此显示对象所属文件的加载信息
mouseXnumber鼠标相对于 DisplayObject 参考点的 X 坐标(像素)
mouseYnumber鼠标相对于 DisplayObject 参考点的 Y 坐标(像素)
rootMovieClip | Sprite | nullDisplayObject 的根 DisplayObjectContainer

可读写属性

属性类型说明
namestring名称。用于 getChildByName()(默认:"")
startFramenumber起始帧(默认:1)
endFramenumber结束帧(默认:0)
isMaskboolean表示 DisplayObject 是否被设置为遮罩(默认:false)
parentSprite | MovieClip | null此 DisplayObject 的父 DisplayObjectContainer
alphanumberAlpha 透明度值(0.0-1.0,默认:1.0)
blendModestring要使用的混合模式(默认:BlendMode.NORMAL)
filtersArray | null与显示对象关联的滤镜对象数组
heightnumber显示对象的高度(像素)
widthnumber显示对象的宽度(像素)
colorTransformColorTransform显示对象的 ColorTransform
matrixMatrix显示对象的 Matrix
rotationnumberDisplayObject 实例的旋转角度(度)
scale9GridRectangle | null当前活动的缩放网格
scaleXnumber从参考点应用的对象水平缩放值
scaleYnumber从参考点应用的对象垂直缩放值
visibleboolean显示对象是否可见(默认:true)
xnumber相对于父 DisplayObjectContainer 本地坐标的 X 坐标
ynumber相对于父 DisplayObjectContainer 本地坐标的 Y 坐标

方法

方法返回类型说明
getBounds(targetDisplayObject)Rectangle返回定义显示对象相对于指定 DisplayObject 坐标系统区域的矩形
globalToLocal(point)Point将点对象从舞台(全局)坐标转换为显示对象(本地)坐标
localToGlobal(point)Point将点对象从显示对象(本地)坐标转换为舞台(全局)坐标
hitTestObject(targetDisplayObject)boolean评估 DisplayObject 的绘制范围是否重叠或相交
hitTestPoint(x, y, shapeFlag)boolean评估显示对象是否与 x 和 y 参数指定的点重叠或相交
getLocalVariable(key)any从类的本地变量空间获取值
setLocalVariable(key, value)void在类的本地变量空间中存储值
hasLocalVariable(key)boolean确定类的本地变量空间中是否有值
deleteLocalVariable(key)void从类的本地变量空间中删除值
getGlobalVariable(key)any从全局变量空间获取值
setGlobalVariable(key, value)void将值保存到全局变量空间
hasGlobalVariable(key)boolean确定全局变量空间中是否有值
deleteGlobalVariable(key)void从全局变量空间中删除值
clearGlobalVariable()void清除全局变量空间中的所有值
remove()void移除父子关系

混合模式

常量说明
BlendMode.NORMAL正常显示
BlendMode.ADD叠加
BlendMode.MULTIPLY正片叠底
BlendMode.SCREEN滤色
BlendMode.DARKEN变暗
BlendMode.LIGHTEN变亮
BlendMode.DIFFERENCE差值
BlendMode.OVERLAY叠加
BlendMode.HARDLIGHT强光
BlendMode.INVERT反转
BlendMode.ALPHAAlpha
BlendMode.ERASE擦除

使用示例

const { Sprite } = next2d.display;
const { BlurFilter } = next2d.filters;

const sprite = new Sprite();

// 位置和大小
sprite.x = 100;
sprite.y = 200;
sprite.scaleX = 1.5;
sprite.scaleY = 1.5;
sprite.rotation = 30;

// 显示控制
sprite.alpha = 0.8;
sprite.visible = true;
sprite.blendMode = "add";

// 滤镜
sprite.filters = [
    new BlurFilter(4, 4)
];

// 添加到舞台
stage.addChild(sprite);

坐标变换示例

const { Point } = next2d.geom;

// 将全局坐标转换为本地坐标
const globalPoint = new Point(100, 100);
const localPoint = displayObject.globalToLocal(globalPoint);

// 将本地坐标转换为全局坐标
const localPos = new Point(0, 0);
const globalPos = displayObject.localToGlobal(localPos);

碰撞检测示例

// 使用边界框检测
const hit1 = displayObject.hitTestPoint(100, 100, false);

// 使用实际形状检测
const hit2 = displayObject.hitTestPoint(100, 100, true);

// 与另一个 DisplayObject 进行碰撞检测
if (obj1.hitTestObject(obj2)) {
    console.log("检测到碰撞");
}

变量操作示例

// 本地变量操作
displayObject.setLocalVariable("score", 100);
const score = displayObject.getLocalVariable("score");
if (displayObject.hasLocalVariable("score")) {
    displayObject.deleteLocalVariable("score");
}

// 全局变量操作
displayObject.setGlobalVariable("gameState", "playing");
const state = displayObject.getGlobalVariable("gameState");
displayObject.clearGlobalVariable(); // 清除全部

相关