У меня есть пользовательский компонент входа в Flex, который представляет собой простую форму, которая отправляет пользовательское событие LoginEvent, когда пользователь нажимает кнопку входа в систему:
<?xml version="1.0" encoding="utf-8"?>
<mx:Form xmlns:mx="http://www.adobe.com/2006/mxml" defaultButton="{btnLogin}">
<mx:Metadata>
[Event(name="login",tpye="events.LoginEvent")]
</mx:Metadata>
<mx:Script>
import events.LoginEvent;
private function _loginEventTrigger():void {
var t:LoginEvent = new LoginEvent(
LoginEvent.LOGIN,
txtUsername.text,
txtPassword.text);
dispatchEvent(t);
}
</mx:Script>
<mx:FormItem label="username:">
<mx:TextInput id="txtUsername" color="black" />
</mx:FormItem>
<mx:FormItem label="password:">
<mx:TextInput id="txtPassword" displayAsPassword="true" />
</mx:FormItem>
<mx:FormItem>
<mx:Button id="btnLogin"
label="login"
cornerRadius="0"
click="_loginEventTrigger()" />
</mx:FormItem>
</mx:Form>
Затем у меня есть файл main.mxml, содержащий приложение flex, я без проблем добавляю свой компонент в приложение:
<custom:login_form id="cLogin" />
Затем я пытаюсь подключить свое событие в ActionScript:
import events.LoginEvent;
cLogin.addEventListener(LoginEvent.LOGIN,_handler);
private function _handler(event:LoginEvent):void {
mx.controls.Alert.show("logging in...");
}
Все выглядит хорошо для меня, но когда я компилирую, я получаю "ошибку неопределенного свойства cLogin ... ясно, что у меня есть контроль с идентификатором" cLogin ", но я не могу получить" дескриптор этого " ... что я делаю не так?
Спасибо.