遮罩的使用,按鈕上邊閃過一道光

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);

 

 

 

 

 

發佈了181 篇原創文章 · 獲贊 48 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章