2016-11-07 1 views
-1

createjsとtweenを使って5つのオブジェクトを持つアニメーションを作成しています。別のオブジェクトがそれを越えたときにオブジェクトを表示する方法

最初のオブジェクトは、画面を横切る車で、他の4つのオブジェクトは、カーがオブジェクトを通過するたびに(最初は非表示になっています)、一度に1回ずつ表示したい4つの建物です。

これは、iが0

トラックに位置し、アルファを設定するコードの一部であるスクリーンブロックを横切るオブジェクトは、私は、一度に1つを表示する建物であるています。

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; 
+1

あなたと助けを求めているかを説明してください - あなたが説明し、これまでのすべては、あなたが何が失敗または何の症状があるさ、ではないが起こるしたいものです。 –

+0

私はそれを実装する方法がわかりません。現時点では、ブロックの座標を通過するトラックとイベントを同期させるように見える前に、ブロックに待機機能を置いています。他のオブジェクトがその座標を越えているときオブジェクトのアルファを設定するきちんとした方法があるかどうかを知りたいです – Kerby82

+0

ああ、衝突検知のようです。この他のcontextjsの質問と回答をチェックしてください。おそらく助けになるでしょう:http://stackoverflow.com/questions/28950618/collision-detection-using-createjs –

答えて

0

truckオブジェクトのインデックスを取得するために、この

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

を使用してください。 (最高のあなたはそれが上記のように取得するためにオブジェクトを再度追加削除することができ、また

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

:次に、あなたはこれを使用して、あなたは上記表示したいオブジェクトのインデックスを設定する必要がありますキャンバス上の他のすべてのオブジェクトのインデックス):

var parent = block.parent; 
parent.removeChild(block); 
parent.addChild(block); 
関連する問題