lightButton
var lightButton = function (sprite, x, y, stencil, scalex, scaley) {
if (sprite && sprite instanceof cc.Sprite) {
if (!stencil) {
stencil = res.Btn_stencil_png;
}
var offx = x || 0;
var offy = y || 0;
var clip = new cc.ClippingNode(); //在按鈕的位置,並且按照sprite大小。創建遮罩節點
var gameTitle = new cc.Sprite(stencil);
clip.setStencil(gameTitle);
clip.setAlphaThreshold(0); //設置Alpha通道值
clip.setContentSize(cc.size(gameTitle.getContentSize().width, gameTitle.getContentSize().height));
var clipSize = clip.getContentSize();
clip.setPosition(cc.p(sprite.getPositionX() + offx, sprite.getPositionY() + offy));
clip.setScaleX(scalex || 1);
clip.setScaleY(scaley || 1);
var spark = new cc.Sprite(res.ButtonLight_png); //亮圖片
spark.setPosition(cc.p(-clipSize.width / 2, 0));
clip.addChild(spark, 2); //亮的圖片添加到 遮罩節點上
spark.setScaleY(gameTitle.getContentSize().height / spark.getContentSize().height);
sprite.getParent().addChild(clip, 4); //添加到 btn 節點上
var moveAction = cc.moveTo(2.6, cc.p(clipSize.width, 0)); //亮 圖片 重複執行閃過動作
var moveBack = cc.moveTo(0, cc.p(-clipSize.width, 0));
var seq = cc.sequence(moveAction, moveBack);
var repreatAction = cc.repeatForever(seq);
spark.runAction(repreatAction);
}
};
創建遮罩的方法
調用
lightButton($('content.btn_create'), -3, 0, "res/mainScene/btn_create.png", 0.86, 0.86);