Skip to main content
October 14, 2008
Answered

ComboBox.editable

  • October 14, 2008
  • 2 replies
  • 420 views
Hi,
I have a combobox who works perfect but when a set myComboBox.editable = true and a enter a text a have this error:

TextEvent.TEXT_INPUT
Event.CHANGE
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at da_ComboBox/vkTypeSelected()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at fl.controls::ComboBox/onTextInput()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at fl.controls::TextInput/handleChange()

Thanks for helping me
This topic has been closed for replies.
Correct answer Colin Holgate
Do you have an event.CHANGE listener somewhere? If so, what does it look like?

2 replies

October 15, 2008
package {
import flash.display.Sprite;
import flash.display.MovieClip;

import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;

import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.*;
import flash.events.TextEvent;

import fl.controls.ComboBox;
import fl.controls.DataGrid;
import fl.data.DataProvider;

public class da_ComboBox extends MovieClip {
private var urlRequest:String;
private var loader:URLLoader;
private var dp:DataProvider;
private var cb:ComboBox = new ComboBox();
private var xml:XML;
private var formatForGlobal:TextFormat;


public function da_ComboBox():void {
setupStyles();
urlRequest = "XML/opgemaaktin.xml";
loader=new URLLoader ;
loader.addEventListener(Event.COMPLETE,onXMLLoaded);
loader.load(new URLRequest(urlRequest));
}
private function setupStyles():void {
formatForGlobal=new TextFormat ;
formatForGlobal.font="Vrinda";
formatForGlobal.bold=true;
formatForGlobal.color=0x8d8262;
formatForGlobal.size=20;
formatForGlobal.leftMargin = 50;
}
private function loadXML(urlRequest:String):void {
loader=new URLLoader ;
loader.addEventListener(Event.COMPLETE,onXMLLoaded);
loader.load(new URLRequest(urlRequest));
}
private function onXMLLoaded(event:Event):void {
xml=new XML(loader.data);
drawOpgemaaktin();
}
private function drawOpgemaaktin():void {
trace("draw ComboBox");
dp = new DataProvider(xml);
dp.sortOn("label");
dp.addItem({label:"Andere"});
cb.name = "cbOpgemaaktin";
cb.move(280,85);
cb.setSize(250,28);
cb.prompt="type woning";
cb.textField.text = "Click in this text field";
cb.rowCount = 15;
cb.setStyle("embedFonts", true);
cb.textField.setStyle("textFormat",formatForGlobal);
cb.dropdown.setRendererStyle("textFormat", formatForGlobal);
cb.dataProvider = dp;
cb.addEventListener(Event.CHANGE,vkTypeSelected);
cb.textField.addEventListener(TextEvent.TEXT_INPUT, textInputHandler);
addChild(cb);

}
private function vkTypeSelected(e:Event):void {
trace("Event.CHANGE");
var myCB:ComboBox = e.currentTarget as ComboBox;
trace(myCB.selectedItem.label);
if (myCB.selectedItem.label == "Andere") {
myCB.editable = true;
myCB.textField.text = "Click in this text field";
}
}
private function textInputHandler(e:Event):void {
trace("TextEvent.TEXT_INPUT");
}
}
}
Colin Holgate
Colin HolgateCorrect answer
Inspiring
October 14, 2008
Do you have an event.CHANGE listener somewhere? If so, what does it look like?