Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何在Flex3中将图像(比如PNG)放在图形上?_Apache Flex_Actionscript 3 - Fatal编程技术网

Apache flex 如何在Flex3中将图像(比如PNG)放在图形上?

Apache flex 如何在Flex3中将图像(比如PNG)放在图形上?,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我是Flex新手,我正在尝试编写一个简单的应用程序。我有一个带有图像的文件,我想在图形上显示此图像。我该怎么做?我尝试了[Embed]-对其进行加密并将其作为子级添加到拥有图形的组件中,但我得到的类型强制失败:无法转换。。。到mx.core.IUIComponent错误。在我的脑海中,我可以想到两件事,它们可能会帮助您,具体取决于您正试图实现的目标: 如果只想显示嵌入的图像,可以将组件添加到后台,并将其源的值设置为要嵌入的图形资产类: [Bindable] [Embed(source="asse

我是Flex新手,我正在尝试编写一个简单的应用程序。我有一个带有图像的文件,我想在图形上显示此图像。我该怎么做?我尝试了[Embed]-对其进行加密并将其作为子级添加到拥有图形的组件中,但我得到的类型强制失败:无法转换。。。到mx.core.IUIComponent错误。

在我的脑海中,我可以想到两件事,它们可能会帮助您,具体取决于您正试图实现的目标:

如果只想显示嵌入的图像,可以将组件添加到后台,并将其源的值设置为要嵌入的图形资产类:

[Bindable]
[Embed(source="assets/image.png")]
private var MyGfx:Class;

myImage.source = MyGfx;
如果确实要在图形对象上绘制位图,可以使用以下方法:


你可能会发现Adobe网站上的文章很有用,尤其是这一部分。

在我的脑海中,我能想到两件事可能会对你有所帮助,这取决于你正试图实现的目标:

如果只想显示嵌入的图像,可以将组件添加到后台,并将其源的值设置为要嵌入的图形资产类:

[Bindable]
[Embed(source="assets/image.png")]
private var MyGfx:Class;

myImage.source = MyGfx;
如果确实要在图形对象上绘制位图,可以使用以下方法:


您可能会发现Adobe网站上的文章很有用,尤其是该部分。

您还可以通过将常规AS3 displayobject添加到rawChildren集合myComponent.rawChildren.addChildmyPNG,将其添加到Flex组件中,但这有点像黑客


如果您试图通过myDisplayObject.graphics实现此目的,请发布一些示例源代码。

您也可以通过将常规AS3 displayobject添加到Flex组件中,方法是将其添加到rawChildren集合myComponent.rawChildren.addChildmyPNG中,但这有点麻烦


如果您试图通过myDisplayObject.graphics实现此目的,请发布一些示例源代码。

因为您是初学者,这里有一个简单的方法

在应用程序中,切换到“设计”视图

将图像组件从组件面板拖到主应用程序画布上

在画布上调整图像大小并使其保持选中状态。在右侧的“属性”面板中,单击“源”字段上的“文件夹”按钮

选择你的形象。如果将图像放置在项目文件夹中,它将包含在生成文件夹中


然后看看源代码视图。您将看到反映您所做工作的MXML代码。你也可以手工改变这个。source=blah.png部分也可以指向远程URL。

因为您是初学者,这里有一个简单的方法

在应用程序中,切换到“设计”视图

将图像组件从组件面板拖到主应用程序画布上

在画布上调整图像大小并使其保持选中状态。在右侧的“属性”面板中,单击“源”字段上的“文件夹”按钮

选择你的形象。如果将图像放置在项目文件夹中,它将包含在生成文件夹中


然后看看源代码视图。您将看到反映您所做工作的MXML代码。你也可以手工改变这个。source=blah.png部分也可以指向远程URL。

好的,还有其他方法 你可以跟着
并使用beginBitmapFill方法查看示例非常有用

好的,还有另一种方法 你可以跟着
并使用beginBitmapFill方法查看示例非常有用

接受的答案不完整,因为如果不调用drawRect,将无法提取任何内容。我已经用这种方式实现了它,它很有效。请注意,我添加了一个矩阵转换,否则图像必须在0,0处绘制,否则将被错误地剪裁

[Embed(source='assets/land-field.png')] 
private var ImgField:Class; 
private var field:BitmapData = new ImgField().bitmapData;

public static function drawImage(g:Graphics, image:BitmapData, x:int, y:int):void {
  var mtx:Matrix = new Matrix();
  mtx.translate(x, y);
  g.beginBitmapFill(image, mtx, false, false);
  g.drawRect(x, y, image.width, image.height);
  g.endFill();
}

接受的答案是不完整的,因为如果不调用drawRect,将不会提取任何内容。我已经用这种方式实现了它,它很有效。请注意,我添加了一个矩阵转换,否则图像必须在0,0处绘制,否则将被错误地剪裁

[Embed(source='assets/land-field.png')] 
private var ImgField:Class; 
private var field:BitmapData = new ImgField().bitmapData;

public static function drawImage(g:Graphics, image:BitmapData, x:int, y:int):void {
  var mtx:Matrix = new Matrix();
  mtx.translate(x, y);
  g.beginBitmapFill(image, mtx, false, false);
  g.drawRect(x, y, image.width, image.height);
  g.endFill();
}

你能发布一些示例代码来说明你打算如何使用图形对象吗?你能发布一些示例代码来说明你打算如何使用图形对象吗?这在这里也有一定的相关性:这在这里也有一定的相关性:但这只适用于你使用flash的情况。由于他没有明确说明他使用的是flash,我们应该假设他使用的是纯actionscript。但这只适用于您使用flash的情况。由于他没有指定他使用的是flash,我们应该假设他使用的是纯actionscript。