« Laszloでsliderをつくる 第3回 | メイン | Laszloでのevent処理はおもいのほか難しい? (解決編) »

Laszloでのevent処理はおもいのほか難しい?

  はてなブックマークに追加 このエントリを livedoor クリップへ追加

Amazonの商品を検索して、商品をグラフ上で比較するというアプリケーションをつくっています。


いま、グラフ上に示した商品を、横軸の値(価格)と縦軸の値(評価)でスクリーニングする機能を追加しようとしています。


sliderの最大・最小の値が変わったというeventを発生させて、marker(赤い点)側で、そのイベントを受け取って処理しようと考えました。

(slider側)
<event name="minThumbValueChanged"/>
<method name="sendMinThumbValueChanged">
minThumbValueChanged.sendEvent();
</method>


(marker側)
<handler name="maxThumbValueChanged" reference="hSlider">
_screeningPrice();
</handler>

<method name="_screeningPrice">
<![CDATA[
var min = hSlider.sliderPane.minThumb.value;
var max = hSlider.sliderPane.maxThumb.value;

if( this._nPrice < min || max < this._nPrice ) {
this.setVisible( false );
} else {
this.setVisible( true );
}
]]>
</method>

注)
hSliderは横軸のslider
_nPriceは商品の価格
をあらわしています。


slider側でなぜか、sendEvent()なんてメソッドは定義されてないというエラーはでますが。
ここまでは、動きます。


次に、vslider側も同じようにとおもって、上のmarker側のコードで
<handler name="maxThumbValueChanged" reference="hSlider">

<handler name="maxThumbValueChanged" reference="vSlider">
とする。OUT!ですTT


handlerは多重定義できるようっていってたのに・・・


class定義の中では、多重定義できないのか、はたまた、思い違いをしているのか・・・
たぶん後者ですが、謎はふかまるばかりりで、はまってます。


というわけで、いまのとこる横軸のみスクリーニングできます。
こちらでお試しください。


p.s.
はじめは、modeletorクラスなんてものをつくろうとおもっていたんですが、どう考えてもうまくいきそうにないので、今回の作戦にでました。結果はいまいちです。

どなたか、よいアイディアがありましたら、お教えください。

Ads BOARD








最近のエントリーとその関連エントリー

トラックバック

このエントリーのトラックバックURL:
http://kazuhiro.ty.land.to/blog/mt-tb.cgi/53

  Map