![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2007
Сообщений: 19
|
Делаю компонент для отправки комментария через вебсервис.
import mx.core.UIComponent;
import mx.events.UIEvent;
import mx.utils.Delegate;
import mx.controls.TextInput;
import mx.controls.Button;
import mx.data.components.WebServiceConnector;
[Event("send")]
class PostComment extends UIComponent
{
static var symbolName:String = "PostComment";
static var symbolOwner:Object = PostComment;
var className:String = "PostComment";
private var txtText:TextInput;
private var txtSubj:TextInput;
private var btnSend:Button;
private var service2:WebServiceConnector;
private var __reqID:String = "";
private var __svcURL:String = "";
function Dial() {
}
function onLoad() {
btnSend.addEventListener("click", Delegate.create(this, btn_onClick));
}
function btn_onClick(eventObj:Object) {
service2.WSDLURL = svcURL;
service2.params = [requestID, txtSubj.text, txtText.text];
service2.trigger();
//пытаюсь диспатчнуть событие
var eventObj = new Object();
eventObj.type = "send";
eventObj.target = this;
trace("before")
dispatchEvent(eventObj);
trace("after")
}
[Bindable]
[Inspectable(defaultValue=0)]
function set requestID (val:String){....}
function get requestID ():String{....}
[Bindable]
[Inspectable(defaultValue=0)]
function set svcURL (val:String){.....}
function get svcURL ():String {....}
}
my_win = mx.managers.PopUpManager.createPopUp(_root, mx.containers.Window, true, {title:"Post Comment",closeButton: true });
my_win.setSize(300, 140);
my_win.move(200, 100);
var post= my_win.createClassObject( PostComment, "postcomment1", 5,{requestID: getReqID(), svcURL:svc_url()});
post.move(0, 30);
//дальше пробовал по разному.
1: post.addEventListener( "send", function (evtObj):Void{trace("handler");} );
2: post.addEventListener( "send", Delegate.create(this, post_onSend) );
3:
var postListner:Object = new Object();
postListner.send= function() { trace("handler"); };
post.addEventListener("send", postListner);
событие не доходит, хотя onLoad срабытывает... коментарий создается. дописал трейсы до и после dispatchEvent(eventObj) - выводятся. и еще вопрос по компонентам. каждый раз когда я делаю Export SWC file, в ролике где использую компонент приходится удалять его из Library и добавлять снова. нельзя ли это автоматизировать? P.S Жестко тут у вас модерят . |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Выкладывай исходник.
|
|
|||||
|
Регистрация: Jan 2007
Сообщений: 19
|
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
У тебя нет нигде инициализации EventDispatcher-ом. Тебе нужно сначала инициализировать свой компонент диспетчером, а уж потом слать события.
А ещё, скажи на милость, зачем ты отключил трейсы в публикации test.fla? И ещё, ты подписываешься на событие send, которое твой компонент не высылает, он высылает after_send. Последний раз редактировалось etc; 15.03.2007 в 20:26. |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 19
|
Цитата:
private var dispatchEvent:Function;? Цитата:
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
1) Нет, надо mx.events.EventDispatcher.initialize(this) в init();
2) Смотри в свойствах публикации; 3) Ну вот сделай одинаково. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|