【问题标题】:How to show object when another object pass over it当另一个对象经过它时如何显示对象
【发布时间】:2016-11-07 20:25:19
【问题描述】:

我正在使用 createjs 和 tween 创建一个包含 5 个对象的动画。

第一个对象是水平穿过屏幕的汽车,其他 4 个对象是 4 个建筑物,每次汽车经过该对象(最初是隐藏的)时,我想一次显示一次。

这是我将位置和 alpha 设置为 0 的代码的一部分。

卡车是穿过屏幕的对象,是我想一次展示的建筑物。

truck = new createjs.Shape();
truck = new createjs.Bitmap(loader.getResult("truck"));
truck.x=-truck.image.width;
truck.y=0;
createjs.Tween.get(truck, { loop: true })
    .wait(250)
    .to({ x: w }, 5600, createjs.Ease.getPowInOut(0.5));
block1 = new createjs.Bitmap(loader.getResult("block3"));
block1.x=0;
block1.y=truck.image.height-block1.image.height;
block1.alpha=0.0;
createjs.Tween.get(block1, { override: true })
    .wait(250)
    .to({ alpha: 1 }, 600, createjs.Ease.getPowInOut(0.5));
block2 = new createjs.Bitmap(loader.getResult("block2"));
block2.x=0;
block2.y=truck.image.height-block2.image.height-block1.image.height;
block2.alpha=0.0;
createjs.Tween.get(block2, { override: true })
    .wait(500)
    .to({ alpha: 1 }, 1600, createjs.Ease.getPowInOut(0.5));
block3 = new createjs.Bitmap(loader.getResult("block1"));
block3.x=block1.image.width;
block3.y=truck.image.height-block3.image.height;;
block3.alpha=0.0;
block4 = new createjs.Bitmap(loader.getResult("block4"));
block4.x=block1.image.width+block3.image.width;
block4.y=truck.image.height-block4.image.height;;
block4.alpha=0.0;
block5 = new createjs.Bitmap(loader.getResult("block5"));
block5.x=block1.image.width+block3.image.width+block4.image.width;
block5.y=truck.image.height-block5.image.height;;
block5.alpha=0.0;

【问题讨论】:

  • 请解释您要寻求帮助的内容 - 到目前为止,您所描述的只是您想要发生的事情,而不是失败或症状是什么。
  • 不知道怎么实现。目前,我只是在尝试将事件与经过街区坐标的卡车同步之前,对街区设置了一个等待功能。我想知道当另一个对象穿过其坐标时是否有一种巧妙的方法来设置对象的 alpha
  • 哦,好吧,就像碰撞检测一样。查看其他 contextjs 问题和答案,也许会有所帮助:stackoverflow.com/questions/28950618/…

标签: javascript createjs tween


【解决方案1】:

使用这个

var index = truck.parent.getChildIndex(truck);

为了得到truck对象的索引。然后,你需要设置你想在上面显示的对象的索引,使用这个:

block.parent.setChildIndex(block, index + 1);

或者,您可以删除然后重新添加一个对象,以使其高于画布上所有其他对象(最高索引):

var parent = block.parent;
parent.removeChild(block);
parent.addChild(block);

【讨论】:

    猜你喜欢
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2016-06-10
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多