Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.03.2007, 17:22
mogadanez вне форума Посмотреть профиль Отправить личное сообщение для mogadanez Найти все сообщения от mogadanez
  № 1  
Ответить с цитированием
mogadanez

Регистрация: 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 Жестко тут у вас модерят .

Старый 15.03.2007, 17:28
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Выкладывай исходник.

Старый 15.03.2007, 19:14
mogadanez вне форума Посмотреть профиль Отправить личное сообщение для mogadanez Найти все сообщения от mogadanez
  № 3  
Ответить с цитированием
mogadanez

Регистрация: Jan 2007
Сообщений: 19
вот
http://rsdn.ru/File/11521/test.rar

Старый 15.03.2007, 20:21
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
У тебя нет нигде инициализации EventDispatcher-ом. Тебе нужно сначала инициализировать свой компонент диспетчером, а уж потом слать события.

А ещё, скажи на милость, зачем ты отключил трейсы в публикации test.fla?
И ещё, ты подписываешься на событие send, которое твой компонент не высылает, он высылает after_send.


Последний раз редактировалось etc; 15.03.2007 в 20:26.
Старый 15.03.2007, 21:13
mogadanez вне форума Посмотреть профиль Отправить личное сообщение для mogadanez Найти все сообщения от mogadanez
  № 5  
Ответить с цитированием
mogadanez

Регистрация: Jan 2007
Сообщений: 19
Цитата:
У тебя нет нигде инициализации EventDispatcher-ом. Тебе нужно сначала инициализировать свой компонент диспетчером, а уж потом слать события.
имеется ввиду это:
private var dispatchEvent:Function;?

Цитата:
А ещё, скажи на милость, зачем ты отключил трейсы в публикации test.fla?
это как?


Цитата:
И ещё, ты подписываешься на событие send, которое твой компонент не высылает, он высылает after_send.
это я так тест кейс готовил =) изначально было одинаково

Старый 15.03.2007, 21:39
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
1) Нет, надо mx.events.EventDispatcher.initialize(this) в init();
2) Смотри в свойствах публикации;
3) Ну вот сделай одинаково.

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:30.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.