У меня есть вопрос, который, как мы надеемся, будет для кого-то довольно простым. В основном я пытаюсь создать строку Validator, которая запрашивает новый язык у своего контроллера, отправляя событие при его создании.
Пример ниже представляет собой прямую копию из проводника компонентов Flex3 - единственное отличие состоит в том, что я создал валидатор как пользовательский компонент, который отправляет событие при его создании.
Проблема в том, что мое основное приложение не может услышать отправляемое событие, и я не знаю почему.
Вот пример
MyValidator.as
package components
{
import flash.events.Event;
import mx.validators.StringValidator;
/**
* ...
* @author Beaker
*/
public class MyValidator extends StringValidator
{
public function MyValidator()
{
trace(">>MyValidator:MyValidator--")
var _event:Event = new Event("getLanguage", true)
dispatchEvent(_event)
}
}
}
Main.MXML
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:comp="components.*" creationComplete="onComplete(event)">
<mx:Script>
<![CDATA[
import flash.events.Event;
import mx.controls.Alert;
protected function onComplete(evt:Event):void
{
trace(">>Main:onComplete--")
systemManager.addEventListener("getLanguage",onTest)
}
protected function onTest(evt:Event):void
{
trace(">>Main:onTest--")
Alert.show("getLanguage");
}
]]>
</mx:Script>
<comp:MyValidator source="{fname}"
property="text"
tooShortError="This string is shorter than the minimum allowed length of 4. "
tooLongError="This string is longer than the maximum allowed length of 20."
minLength="4" maxLength="20"
trigger="{myButton}" triggerEvent="click"
valid="Alert.show('Validation Succeeded!');"/>
<mx:Panel title="StringValidator Example" width="75%" height="75%"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">
<mx:Form>
<mx:FormItem label="Enter a name between 4 and 20 characters: ">
<mx:TextInput id="fname" width="100%"/>
</mx:FormItem>
<mx:FormItem >
<mx:Button id="myButton" label="Validate" />
</mx:FormItem>
</mx:Form>
</mx:Panel>
</mx:Application>
Простите за форматирование, если оно не отображается правильно!