Adobe Flash AS3掩模放置
问题描述:
我觉得我应该知道这个......好吧,我会喜欢任何帮助。所以我制作了一个图像滑块类,并且可以正常工作到掩码的位置。在我的家庭类中,我制作了一个图像滑块类的实例并相应地定位它。滑块类中的图像位置为0,0以及我用于掩码的形状。这里是掩模放置在stage.x.x = 0,stage.y = 0而不是滑块的Class x:0,x:0的问题。为什么滑块实例显示正确的位置,但实例中的掩码不是?感谢您的帮助Adobe Flash AS3掩模放置
这是我的主页类
private function buildSlider() : void {
slider = new Slider(arrSilde);
slider.x = btnWidth + 15;
addChild(slider);
}
这是Slider类
private var t : Timer;
private var counter : int;
private var slideArr : Array;
private var currentSlide : HomeSliderPageObj;
private var oldSlide : HomeSliderPageObj;
private var masker : Shape;
public function Slider(_arr : Array) {
super();
slideArr = _arr;
currentSlide = _arr[counter];
buldSlider();
addChild(currentSlide.image);
t = new Timer(2000);
t.addEventListener(TimerEvent.TIMER, changeSlide);
t.start();
}
private function buldSlider() : void {
masker = new Shape;
masker.graphics.lineStyle();
masker.graphics.beginFill(0x000000, 1);
masker.graphics.drawRect(0,0, currentSlide.image.width, currentSlide.image.height);
masker.graphics.endFill();
masker.x = currentSlide.image.x;
masker.y = currentSlide.image.y;
this.mask = masker;
}
private function changeSlide (event : TimerEvent) : void {
if (counter >= slideArr.length){ counter = 0; }
else { ++counter; }
oldSlide = currentSlide as HomeSliderPageObj;
addChild(oldSlide.image);
removeChild(currentSlide.image);
currentSlide = slideArr[counter];
currentSlide.image.x = currentSlide.image.width;
addChild(currentSlide.image);
TweenMax.to(oldSlide.image, .5, {x:oldSlide.image.width*(-1), onComplete:clean});
TweenMax.to(currentSlide.image, .5, {x:0});
}
private function clean() : void {
removeChild(oldSlide.image);
oldSlide = null;
}
答
见,如果这个工程。
currentSlide = _arr[counter];
buldSlider(); //this creates the mask shape
addChild(currentSlide); //this add the image movieclip
currentSlide.mask = masker; //this sets the masking
private function buldSlider() : void {
masker = new Shape;
masker.graphics.lineStyle();
masker.graphics.beginFill(0x000000, 1);
masker.graphics.drawRect(0,0, currentSlide.image.width, currentSlide.image.height);
masker.graphics.endFill();
masker.x = currentSlide.image.x;
masker.y = currentSlide.image.y;
addChild(masker);
}
+0
我忘了把掩码添加到显示列表谢谢 – 2012-01-19 09:13:35
你在哪里addChild()掩码对象?我在代码中的任何地方都看不到它。并且:您是否试图追踪masker.x和masker.y? – 2012-01-17 14:58:05
非常感谢你看完 – 2012-01-19 09:12:24