是否可以使用as3補間進行弱褪色淡入淡出alpha?as3使用補間的褪色淡入淡出效果
我想,也許http://www.greensock.com可能具有的答案,但我什麼也沒找到。我希望圖像能夠逐漸從另一側消失。軟溶解。
我想,也許它可以使用掩模,但我不認爲口罩接受阿爾法否則這是可以做到這樣。
是否可以使用as3補間進行弱褪色淡入淡出alpha?as3使用補間的褪色淡入淡出效果
我想,也許http://www.greensock.com可能具有的答案,但我什麼也沒找到。我希望圖像能夠逐漸從另一側消失。軟溶解。
我想,也許它可以使用掩模,但我不認爲口罩接受阿爾法否則這是可以做到這樣。
其實蒙版允許alphas。這是一種黑客。你應該嘗試在代碼中寫的:
maskMC.cacheAsBitmap = true;
objMC.cacheAsBitmap = true;
objMC.mask = maskMC;
哪裏objMC是你的動畫影片剪輯和maskMC是你的面膜含有與透明度漸變的形狀。這裏看一個例子:Link
您也可以使用實現這個使用GreenSock效果。代碼是這樣的:
TweenLite.to(objMC, 1, {"alpha":0, "x":objMC.x + 10});
使用TweenLite的,你需要提供對象的動畫,動畫的持續時間和Object
類的一個實例(這是東西,我們花括號之間寫)。這個實例包含了我們想要逐漸改變的所有值。
您可以使用ALPHA blendmode來完成此操作。
使具有梯度,其阿爾法從全去什麼形狀,然後使它的混合模式ALPHA,把它作爲你的項目,你想掩蓋同一容器中。
然後設置容器的BlendMode圖層
的僞代碼:
container.blendMode = BlendMode.LAYER; //container holds both the mask and the thing you want masked
maskObj.blendMode = BlendMode.ALPHA;
drawMaskGradients();
這是我在過去使用通過代碼來創建所述面罩的功能:(itemContainer是我的目標m屏蔽) 但是,您可以使用設計工具在Flash IDE中完成所有操作。
softMaskSprite = new Sprite();
this.blendMode = BlendMode.LAYER;
softMaskSprite.blendMode = BlendMode.ALPHA;
softMaskSprite.mouseChildren = false;
softMaskSprite.mouseEnabled = false;
this.addChildAt(softMaskSprite,this.getChildIndex(itemContainer)+1);
//Create Sides
var top:Shape = new Shape();
var matr:Matrix = new Matrix();
matr.createGradientBox(areaWidth + (softMaskWidth * 2), softMaskWidth, 90 * (Math.PI/180), 0, 0);
top.graphics.beginGradientFill(GradientType.LINEAR, [0xFF0000, 0x0000FF], [0,1], [0,255], matr, SpreadMethod.PAD);
top.graphics.drawRect(0, 0, areaWidth + (softMaskWidth * 2), softMaskWidth);
top.graphics.endFill();
top.x = softMaskWidth * -1;
top.y = softMaskWidth * -1;
softMaskSprite.addChild(top);
//BOTTOM
var bottom:Shape = new Shape();
matr = new Matrix();
matr.createGradientBox(areaWidth + (softMaskWidth * 2), softMaskWidth, 90 * (Math.PI/180), 0, 0);
bottom.graphics.beginGradientFill(GradientType.LINEAR, [0xFF0000, 0x0000FF], [1,0], [0,255], matr, SpreadMethod.PAD);
bottom.graphics.drawRect(0, 0, areaWidth + (softMaskWidth * 2), softMaskWidth);
bottom.graphics.endFill();
bottom.y = areaHeight;
bottom.x = softMaskWidth * -1;
softMaskSprite.addChild(bottom);
如果解決了問題,您應該接受答案。 – Gio
嗨吉奧,對不起,我離開了我的電腦。我沒有機會去測試它。我感謝你的工作。我相信這會做到。我會在接受測試時接受答案。再次非常感謝這個偉大的例子和努力! –
很高興幫助。我沒有投票給你,這是我的投票。 – Gio