Sencha에서 사용자 정의 이벤트를 만드는 방법을 정리해보았습니다.
객체 선언시 addEvents 메소드로 이벤트를 등록하고,
fireEvent 메소드로 이벤트 호출하고,
리스너에서 이벤트를 받아서 처리하면 됩니다.
이벤트 등록
this.addEvents('OnLoadImage');
이벤트를 리스너 등록
listeners: {
OnLoadImage: function(panel, index, imgUrl) {
//alert('ImageUrl' + src);
}
}
이미지 번호로 이미지 URL 정보를 얻었을 경우 이벤트 호출
this.fireEvent('OnLoadImage', this, this.getActiveIndex(), imgUrl);
소스
Jarvus.mobile.PinchCarousel = Ext.extend(Ext.Carousel, {
initComponent : function() {
// shryu
this.addEvents('OnLoadImage');
},
doLoadImage(imageNo) {
Ext.Ajax.request({
url : json_url,
params : {
cmd : 'getImageUrl',
imgno : imageNo
},
success : function(response, opts) {
var JsonData = JSON.parse(response.responseText);
if (JsonData.data.err == "") {
OnLoadImage(JsonData.data.imgUrl);
} else {
return false;
}
}
});
},
// shryu
OnLoadImage : function(imgUrl) {
//alert('OnLoadImage = ' + this.getActiveIndex() + '/' + imgUrl);
this.fireEvent('OnLoadImage', this, this.getActiveIndex(), imgUrl);
}
}
var pinchCarousel = new Jarvus.mobile.PinchCarousel({
listeners: {
OnLoadImage: function(panel, index, imgUrl) {
//alert('ImageUrl' + src);
}
}
});