2012-03-26 7 views
0

Ich habe eine Klasse in actionscritpt erstellt, die die spark.components.Button erweitert, da ich zur Laufzeit eine Reihe von Schaltflächen laden werde. Ich habe eine SkinnableContainer.mxml-Datei, in die die Spark-Buttons geladen werden. Wenn ich die addElement() - Methode in dieser mxml-Datei verwende, wird meine benutzerdefinierte Skin für meine Schaltfläche nicht angezeigt.Schaltfläche Haut nicht mit addElement() angezeigt;

//in the SkinnableContainer.mxml file 
public function displayButton(button:Button):void 
{ 
    addElement(button); 
} 

jedoch, wenn in derselben SkinnableContainer.mxml Datei ich es fallen in über

<mybuttons:CustomButton x="73" y="4"/> 

die Haut zeigt ganz gut.

ich vielleicht gedacht, da die Schaltfläche hinzugefügt wurde, nachdem ich die loadStyleDeclarations genannt hatte, ist dies das Problem sein könnte, also rief ich die

styleManager.loadStyleDeclarations(skin, true, true, ApplicationDomain.currentDomain); 

, nachdem ich das Button-Element hinzugefügt, und die Taste immer noch nicht die Haut .

Irgendwelche Ideen?

+0

Im displayButton Methode anwenden können Sie Ihre Parameter als Knopf anstelle eines Custombutton eingegeben haben, sind Sie sicher, ein Custombutton wird hineingereicht? Nach dem Hinzufügen von Elementen zur Anzeigebaumstruktur müssen Sie die Stildeklarationen nicht erneut laden. Sie sollten angewendet werden, solange der Stil registriert ist und die Komponente die Verwendung des Stils implementiert. – shaunhusain

+0

Danke, ich gebe dem einen Schuss – user1210003

Antwort

0

Als Shaunhusain sagte Ihre Methode ist auf der Suche nach einem Funken Button nicht Ihre CustomButton, die ich nehme übernimmt die Enthäutung.

Unabhängig davon, in Ihrem Methode Sie Ihre Haut auf die bestandene Taste setStyle

public function displayButton(button:Button):void 
{ 
    button.setStyle("skinClass", your.button.SkinClass); 
    addElement(button); 
} 
+0

Ich werde das einen Schuss geben, danke – user1210003