我正在为Blackberry Playbook开发一个ActionScript 3.0应用程序。
我正在使用Loader Class来显示图片。
我希望在用户点击此图片时在同一位置显示另一张图片。
我该怎么做?我想在这两个图像之间进行转换。第二张图像将从0 alpha变为100 alpha。
答案 0 :(得分:1)
您熟悉任何Tween引擎吗?如果你不这样做,我会推荐TweenLite。
我通常会做的是加载我计划使用的所有图像,然后将它们中的两个或多个堆叠到我想要的位置。这些图像中只有一个在任何时候都可见(alpha = 1)。
在您的点击处理程序中,您可以执行以下两项操作之一:
IROT
答案 1 :(得分:1)
这一切都取决于你想要做的转变。对于最简单的alpha,您可以像推荐的irot一样使用Tweener引擎,或者您可以自己做一些简单的事情。
<强>简单强>: 基本上,当您单击图像时,请加载下一个图像(或已加载它)。启动一个enterframe监听器来加载它。类似的东西:
// we're assuming that "image2" is the second image and it has an alpha
// of 0.0 and visible of false. "image1" is the first image and currently
// on stage
// the on click handler for the image
private function _onImageClick( e:MouseEvent ):void
{
// add a enter frame to the stage - I'm going to assume you
// have access through this.stage
this.stage.addEventListener( Event.ENTER_FRAME, this._onEnterFrame );
// make our second image visible so we can fade it up
this.image2.visible = true;
}
// called every frame
private function _onEnterFrame( e:Event ):void
{
// image2 is the second image
this.image2.alpha += 0.05; // slow fade
if( this.image2.alpha >= 1.0 )
{
this.image2.alpha = 1.0;
// hide the first image
this.image1.alpha = 0.0;
this.image1.visible = false;
// remove the enter frame event listener
this.stage.removeEventListener( Event.ENTER_FRAME, this._onEnterFrame );
}
}
稍微复杂一点:查看BitmapData类及其merge()
或pixelDisolve()
函数:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html