Apache flex Flex:如何展平加载的swf然后应用alpha,而不是应用alpha然后展平

Apache flex Flex:如何展平加载的swf然后应用alpha,而不是应用alpha然后展平,apache-flex,actionscript-3,flash,alpha,Apache Flex,Actionscript 3,Flash,Alpha,我有一个flex应用程序,正在尝试在谷歌地图上显示一些动画矢量形状。为此,我加载一个外部SWF(内容是动态的,因此我必须在运行时加载,SWF是唯一支持动画AFAIK的可加载格式),并使用覆盖将其放置在地图上 然后我需要控制SWF的阿尔法。设置它很简单,但出于某种原因,alpha似乎应用于SWF内的子形状,只有在这之后,图像才会合成到地图上。这使得位于绿色斑点顶部的黄色斑点显示为黄绿色,而不仅仅是黄色 我需要以某种方式告诉flex/flash“渲染/展平SWF,然后应用alpha”,而不是“将al

我有一个flex应用程序,正在尝试在谷歌地图上显示一些动画矢量形状。为此,我加载一个外部SWF(内容是动态的,因此我必须在运行时加载,SWF是唯一支持动画AFAIK的可加载格式),并使用覆盖将其放置在地图上

然后我需要控制SWF的阿尔法。设置它很简单,但出于某种原因,alpha似乎应用于SWF内的子形状,只有在这之后,图像才会合成到地图上。这使得位于绿色斑点顶部的黄色斑点显示为黄绿色,而不仅仅是黄色

我需要以某种方式告诉flex/flash“渲染/展平SWF,然后应用alpha”,而不是“将alpha应用于各个子形状,然后展平到贴图”。理想情况下,无需通过BitmapData对象或类似对象

包含层次结构是Map->BlobManager->Loader->Loader.content(SWF),我已经尝试将alpha分别应用于BlobManager、Loader和Loader.content,但没有区别。我尝试在较低的层上使用cacheAsBitmap,然后在较高的层上应用alpha,但没有效果


对下一步的尝试有什么建议吗?谢谢

我认为如果不在位图上绘制加载的内容并使用它来显示alpha,您就无法做到这一点。 不过这很容易,尽管如果加载的内容来自另一个域,并且不允许您从中创建位图数据,您可能会遇到安全冲突

// content is the loaded external swf, or the Loader itself?
var bitmapData:BitmapData = new BitmapData(content.width, content.height);
bitmapData.draw(content);
var bitmap:Bitmap = new Bitmap(bitmapData);
bitmap.alpha = .5;
addChild(bitmap);
甚至可能不需要显示加载的内容(尽管我没有尝试过),您也可以使用矩阵将其中的一部分用作位图数据


编辑:对于动画,另一个选项是加载动画gif,如下所述:(我没有这方面的经验,所以我不能说它是否真的适合你),或者使用视频

试试看,它挽救了很多人的生命。

据我从问题中了解,主要问题是加载的内容是动画:(Thx@alxx,如果可以的话,那么忽略我的答案:)我也学到了一些新东西。