В предположении, что все кнопки в вашей панели кнопок будут оказанными в то же время, и вы не будете нуждаться скроллбарами ...
С искрой ButtonBar, вы можете получить доступ к части кожи напрямую, чтобы получить доступ на кнопку. Концептуально что-то вроде этого:
var button : Button = mySparkButtonBarInstance.dataGroup.getElementAt(SomeIndex);
button.visible = false; // or true
button.includeInLayout = false; // or true
Это не будет работать, если ваш ButtonBar может использовать виртуальные макетах и требует прокрутки.
Edit: Вот рабочий код демонстрирует эту технику:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
import mx.core.IVisualElement;
protected function button1_clickHandler(event:MouseEvent):void
{
trace(buttonBar.dataGroup.getElementAt(0));
var button :IVisualElement = buttonBar.dataGroup.getElementAt(0);
button.visible = false; // or true
button.includeInLayout = false; // or true }
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:layout>
<s:VerticalLayout paddingLeft="20" paddingTop="20"/>
</s:layout>
<s:ButtonBar id="buttonBar">
<mx:ArrayCollection>
<fx:String>Flash</fx:String>
<fx:String>Director</fx:String>
<fx:String>Dreamweaver</fx:String>
<fx:String>ColdFusion</fx:String>
</mx:ArrayCollection>
</s:ButtonBar>
<s:Button label="Remove" click="button1_clickHandler(event)" />
</s:WindowedApplication>
Вы используете MX ButtonBar или искру ButtonBar? Если Spark, ответ, с которым вы связаны, не цитируется. Однако концепция та же. Найдите кнопку и переключите ее видимость. Или, возможно, удалите эту кнопку из DataProvider ButtonBar, не переключая индивидуальную видимость на кнопку. – JeffryHouser
О, я не считал это, ты прав, это Искра. Мне нужно переключить видимость, так как удаление кнопки помешает индексу, на который полагается куча других компонентов (он довольно тесно связан :() – iman453