Ich habe die Adobe-docs Using FXG und Embedding application assets lesen, kann aber einbetten nur die FXG durch MXML -Mit FXG Grafik in einer Flex mobile app arbeitet mit MXML, aber nicht mit Actionscript
MyStars. mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
firstView="views.Home">
</s:ViewNavigatorApplication>
Home.mxml (funktioniert in Ordnung, wenn die Einbettung FXG durch MXML):
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:comps="assets.*"
title="Home">
<comps:Star />
</s:View>
Star.fxg (in src/assets/Star.fxg befindet):
<?xml version='1.0' encoding='UTF-8'?>
<fxg:Graphic xmlns:fxg="http://ns.adobe.com/fxg/2008" version="2">
<fxg:Path x="9.399" y="10.049" data="M 82.016 78.257 L 51.895 69.533 L 27.617 89.351 L 26.621 58.058 L 0.231 41.132 L 29.749 30.52 L 37.714 0.241 L 56.944 24.978 L 88.261 23.181 L 70.631 49.083 Z">
<fxg:fill>
<fxg:SolidColor color="#FFFFFF"/>
</fxg:fill>
<fxg:stroke>
<fxg:SolidColorStroke
caps="none"
color="#4769C4"
joints="miter"
miterLimit="4"
weight="20"/>
</fxg:stroke>
</fxg:Path>
</fxg:Graphic>
Wenn ich jedoch versuchen, die FXG Grafik über Actionscript (noch in der gleichen Flex-Mobilprojekt instansiate), erhalte ich die Compiler-Fehler:
Call to a possibly undefined method Star
Home.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:comps="assets.*"
title="Home">
<fx:Script>
<![CDATA[
import spark.core.SpriteVisualElement;
private static const STAR:SpriteVisualElement = new Star();
]]>
</fx:Script>
<s:BitmapImage source="{STAR}" />
</s:View>
Ich habe Import Comps auch versucht; und/oder neue comps.Star();
Wenn ich die FXG-Datei src/ und verwenden Xmlns bewegen: comps = "*" alles funktioniert.
"importieren Vermögenswerte.Star;" funktioniert gut, danke. Image und BitmapImage können es auch als * source = * verwenden. Leider funktionieren sie schlecht, wenn ich * width * und * height * einstelle, die Skalierung der FXG-Datei funktioniert aus irgendeinem Grund nicht gut. –
@AlexanderFarber Ist das Problem, dass das Bild nicht skaliert? Oder besteht das Problem, dass das Seitenverhältnis nicht beibehalten wird? Hier ist ein Beispiel meiner FXGImage Komponente: http://www.flextras.com/labs/FlextrasFridayLunch/2012/FXGImage/FXGImageSample.html. Sie können die Höhe und Breite ohne Problem ändern. – JeffryHouser
Gut, Ihre FXGImage-Komponente sieht viel besser aus. Das Bild und BitmapImage skalieren, aber es sieht schlecht aus. Zum Beispiel, wenn ich diesen Code in der obigen App verwende: \t –