Chciałbym dołączyć plik MXML do mojego pliku MXML w ten sam sposób, w jaki można dołączyć plik zewnętrzny w AS3 przy użyciu dyrektywy include. Korzystanie z dyrektywy include przenosi kod z zewnętrznego pliku do oryginalnego pliku podczas kompilacji, umieszczając go w tym samym zasięgu.Jak dołączyć plik MXML do wstawienia innego pliku MXML?
Na przykład
Application.mxml:
<Application>
<source="external.mxml"/>
</Application>
External.mxml:
<Styles/>
<Declarations>
<Object id="test"/>
</Declarations>
muszę utrzymać ten kod/mxml/xml w zewnętrznych plik w zakresie z oryginałem. Nie pytaj mnie, dlaczego chcę to zrobić.
Inny przykład. Oto mój aktualny kod (uproszczony), wszystko w 1 pliku mxml:
...
File1.mxml
<Button click="clickHandler()"/>
<Script>
public function clickHandler():void {
}
</Script>
...
tutaj jest to, co chcę:
...
File1.mxml
<Group>
<source="File2.mxml"/>
<Button click="clickHandler()"/>
<Group>
File2.mxml
<Script>
public function clickHandler():void {
trace(this); // File1.mxml
}
</Script>
...
chcę podzielić się moją kod do osobnego pliku ...
~~ Aktualizacja ~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Chociaż nie było to, o co prosiłem za pomocą schematu "zza kodu" osiąga częściowe uznanie za zerwanie kodu z widoku. Dlatego tworzę plik MXML, MyGroup.mxml lub MyGroup.as, który rozszerza grupę zawierającą kod clickHandler.
Problem z tą metodą polega na tym, że jestem następnie zablokowany na typ klasy, który przedłużam, na stałe kodując widok. Na przykład, będę musiał rozszerzyć Grupę, jeśli klasa MXML, którą chcę podzielić na osobne pliki, jest Grupą.
Pracowałem nad projektami, w których to zostało zrobione i nie jest dobre. Ludzie zaczynają ustawiać style i aspekty wizualne lub grupować/wyświetlać określone właściwości w kodzie za klasą i później, kiedy lub kiedy musimy go zmienić lub układ, w którym kończymy wszystkie te zależności z kontenerem. Staje się bałagan. Dodatkowo, używając Code Behind, nie możesz go ponownie użyć (użyj ponownie w taki sposób, aby style styles.as były ponownie używane). To nie jest rozwiązanie, ale pomyślałem, że o tym wspomnę.
Oto kod za przykład
MyGroupBehind.mxml:
<Group>
<Script>
public function clickHandler():void {
trace(this); // File1.mxml
}
</Script>
</Group>
MyGroupAhead.MXML:
<MyGroupBehind>
<Button click="clickHandler()"/>
</MyGroupBehind>
Tak, spowoduje to utworzenie wystąpienia komponentu w dokumencie, ale potrzebuję go, aby traktować zewnętrzny MXML tak, jakby był częścią tego samego dokumentu w tym samym zakresie. Załóżmy, że mam dokument z przyciskiem i obsługą kliknięcia w znaczniku skryptu. Chciałbym wziąć ten moduł obsługi kliknięć i umieścić go w innym pliku mxml. –