I think you can make your own RemoveElement state and push it instead of 
RemoveChild.


On 4/12/12 3:40 PM, "DancesWtihElves" <ka...@hartleys.net> wrote:






I have an actionscript component (a View) with a number of states defined in 
the following manner:

var stateDefault:State = new State();
stateDefault.name = "DefaultState";
stateDefault.overrides = new Array();// array of IOverride
states.push(stateDefault);
stateDefault.overrides.push(new RemoveChild(btn_MatterPicker_Search));

When attempting to run the line
 currentState = "DefaultState";
the error below occurs.  I'm hoping that someone has a simple solution to this 
- the only thing I can think of at the moment is to write my own state change 
handler that adds and removes the appropriate items from each state manually.  
Does anyone have a more elegant solution?  (The code needs to remain as 
actionscript, can't switch to mxml.)

Here's the error:
Error: removeChild() is not available in this class. Instead, use 
removeElement() or modify the skin, if you have one.
 at 
spark.components::Group/removeChild()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:2136]
 at 
mx.states::RemoveChild/apply()[E:\dev\4.y\frameworks\projects\framework\src\mx\states\RemoveChild.as:150]
 at 
mx.core::UIComponent/applyState()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:10741]
 at 
mx.core::UIComponent/commitCurrentState()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:10487]
 at 
mx.core::UIComponent/setCurrentState()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:10323]
 at mx.core::UIComponent/set 
currentState()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:6425]
 at 
com.chromeriver.components.matter::MatterSearchBar/setDefaultState()...MatterSearchBar.as:288]






--
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui

Reply via email to