Ich erstelle eine Reihe von Flash-Komponenten mit der Fähigkeit, die Skin der Komponente durch eine andere in der Bibliothek zu ersetzen.Die Flash-Komponente (SWC) kann nicht auf die Bibliothek in der Live-Vorschau zugreifen.
Momentan kann ich nach dem Ausführen der Anwendung auf die Bibliothek zugreifen, aber nicht während der Live-Vorschau, und ich würde gerne wissen, ob die Komponente während des Live-Vorschau-Modus auf die Bibliothek zugreifen kann wo können Sie die Komponente auf der Bühne herum ziehen und seine Eigenschaften im Komponentenparameter-Fenster)
Here is a simplified code that just looks to see if there is a symbol of the name specified and than instantiates it and adds it as a child.
package
{
import fl.core.UIComponent;
import flash.display.MovieClip;
import flash.system.ApplicationDomain;
/**
* ...
* @author Roy Lazarovich
*/
public class CompTest extends UIComponent
{
private var customfile :String;
public function CompTest()
{
}
override protected function configUI():void
{
}
override protected function draw():void
{
super.draw();
}
private function setCustomFile():void
{
if (ApplicationDomain.currentDomain.hasDefinition(customfile))
{
var c:Class = Class(ApplicationDomain.currentDomain.getDefinition(customfile));
var mc:MovieClip = new c();
addChild(mc);
}
}
[Inspectable(name = "_Custom File", defaultValue = "")]
public function set _customfile(value:String):void
{
customfile = value;
setCustomFile();
drawNow();
}
}
}
Dank ändern!
Haben Sie Glück dabei? –
Haben Sie die Bibliotheken in Ihren Pfad aufgenommen? – michael
Meinen Sie, den Speicherort der Clientbibliothek in die Pfade für die Komponente aufzunehmen? Ich bin mir nicht sicher, ob das überhaupt möglich ist - wir haben ein paar hundert Client-Bibliotheken, die unsere Komponenten verwenden. Oder meinen Sie, den Client-Pfad in Client .fla ?? –