Gibt es eine Möglichkeit, einen Tag in Flex-Komponenten in mehreren Verzeichnissen zu verbinden?
-
03-07-2019 - |
Frage
eine Flex-Anwendung oder ein Modul gegeben, können Sie einen benutzerdefinierten XML-Namespace wie folgt an:
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="custom.namespace.*">
Wir können dann auf MXML-Komponenten im Verzeichnis custom / Namespace verweisen / die benutzerdefinierten Tags verwenden. Zum Beispiel, wenn ich die Komponenten Custom1 und Custom2 im custom / Namespace-Verzeichnis haben, kann ich auf sie verweisen wie folgt:
<custom:Custom1/>
<custom:Custom2/>
Gibt es eine Möglichkeit, mehrere Verzeichnisse auf dem gleichen Tag abzubilden? Das heißt, wenn ich Komponenten in einem Unterverzeichnis custom / Namensraum habe, wie custom / Namespace / sub mit Komponente SubCustom1, ist es eine Möglichkeit, das Flex-Dokument zu ändern, so dass die benutzerdefinierten Tags zu SubCustom1 beziehen?
Beachten Sie, dass eine Abhilfe, die ich fand, war einen neuen Tag für jedes Verzeichnis (z Xmlns hinzuzufügen: "custom.namespace.sub *" custom.sub = und dann:
<custom.sub:SubCustom1>
Diese Lösung scheint wie eine Flickschusterei, though.
Lösung
Um einen benutzerdefinierten Namespace in Flex erstellen müssen Sie
1) Erstellen Sie eine benutzerdefinierte Manifest-Datei. Z
<?xml version="1.0" encoding="utf-8" ?>
<componentPackage>
<component id="Accordion" class="mx.containers.Accordion"/>
....
In 2) etwas ähnlich der folgenden auf Ihre Flex-compiler.xml-Datei:
<compiler>
...
<namespaces>
<!-- Specify a URI to associate with a manifest of components for use as MXML -->
<!-- elements. -->
<namespace>
<uri>http://mycustomnamespace.com</uri>
<manifest>custom-manifest.xml</manifest>
</namespace>
</namespaces>
</compiler>
Sie können eine ausführlichere Erklärung lesen hier .
Diese Frage wurde auch beantwortet hier .
Andere Tipps
Die Namensgebung folgt direkt aus der XML-Spezifikation für Namensräume. Wenn Sie möchten, custom
ändern, um das Unterverzeichnis verweisen die Namespace-Deklaration ändern:
xmlns:custom="custom.namespace.*"
xmlns:custom="custom.namespace.sub.*"