类构造函数
public function item(brand:String, title:String, price:Number, mp:Number,
path:String, sb1:*, sb2:*):void
sb1:*和sb2:*是对象钩子。
这些是指定的监听器:
_sb1.addEventListener("Changed", slideBarChanged); // Price
_sb2.addEventListener("Changed", slideBarChanged); // MegaPixels
这个函数被称为:
private function slideBarChanged(e:Event):void
{
switch(e.target.type)
{
case "Price":
if(int(e.target.currVal) > Math.abs(this.price))
{
this._active = false;
_sb2.removeEventListener("Changed", slideBarChanged);
}
else {
this._active = true;
_sb2.addEventListener("Changed", slideBarChanged);
}
break;
case "MegaPixels":
if(int(e.target.currVal) > Math.abs(this.mpixels))
{
this._active = false;
_sb1.removeEventListener("Changed", slideBarChanged);
}
else {
this._active = true;
_sb1.addEventListener("Changed", slideBarChanged);
}
break;
}
一切都运作正常,但是当项目变为“_active = false”时,监听器没有被移除;实际上,应该按照以下方式工作:
如果价格太高,则忽略像素并只关注价格。 如果像素太高,则忽略价格并只关注像素。
这让我感到困惑,非常感谢您的帮助。 谢谢。