Apache flex 在Flex移动应用程序中使用FXG图形可以与MXML一起使用,但不能与ActionScript一起使用
我已经阅读了Adobe的文档,但只能通过MXML嵌入FXG- MyStars.mxml:Apache flex 在Flex移动应用程序中使用FXG图形可以与MXML一起使用,但不能与ActionScript一起使用,apache-flex,flex4.5,flex-mobile,flex4.6,fxg,Apache Flex,Flex4.5,Flex Mobile,Flex4.6,Fxg,我已经阅读了Adobe的文档,但只能通过MXML嵌入FXG- 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"> &
<?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>
<?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>
<?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>
<?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>
Home.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>
<?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>
<?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>
<?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>
我也尝试过导入comps和/或新公司之星()强>
当我将FXG文件移动到src/并使用xmlns:comps=“*”时,一切都正常。在ActionScript中导入Star,基于您的代码,我假设如下:
import assets.Star
private static const STAR:SpriteVisualElement = new Star();
我怀疑这将消除编译器错误。但是,我不确定是否可以使用SpriteVisualElement作为BitmapImage的源。您可能必须将SpriteVisualElement添加为父容器的子容器,并使用Flex组件生命周期来完成此操作
我已经做了一些实验,只是。不过,由于某种原因,我忽略了FXG元素可以是SpriteVisualElement这一事实。如果您在ActionScript中创建组件,使用我的FXGImage类不会免除您在ActionScript中调整组件大小和位置的责任。对于FXG图形,请注意您的图片大小。使用FXG创建对象时,图标周围的空白将计数。确保将艺术品大小设置为图标大小(图标周围没有额外的空白)。这样,当您嵌入到bitmapImage时,FXG资产看起来会更好 “导入资产。明星”效果很好,谢谢。Image和BitmapImage也可以将其视为source=。不幸的是,当我设置宽度和高度时,它们工作不好,缩放FXG文件由于某些原因不能很好地工作。@AlexanderFarber是图像不缩放的问题吗?或者是纵横比没有保持的问题?以下是我的FXGImage组件的示例:。您可以更改高度和宽度,不存在问题。好吧,您的FXGImage组件看起来好多了。图像和位图图像确实可以缩放,但看起来很糟糕。例如,当我在上述应用程序中使用此代码时: