ActionScript:将帧应用于图像/背景?

时间:2010-05-17 13:43:56

标签: flash actionscript-2 flash-cs4 background-image

我正在使用flash编辑自定义日历应用程序。此应用程序的目的是让您选择自己的图像,并从中创建一个日历。您基本上可以拖放您选择的图像,并应用框架/边框或拖放装饰。 这是在您选择的装饰/图像上绘制边框/框架的代码片段。

tempListener.onLoadInit = function(target_mc:MovieClip)
{
    var mcName = target_mc._name.substring(0, target_mc._name.indexOf("@", 0));
    if(mcName == "frame_Image")
    {
        target_mc.onPress = function()
        {
            if(_root.selectedImage != null)
            {
                var index = this._name.substring(this._name.indexOf("@",0)+1, this._name.length);
                var objPath = nodesFrames.childNodes[index-1].attributes.image;

                if(_root.selectedImage._name.split("@")[0] == "image")
                {
                    var mask = _root.selectedImage[_root.selectedImage._parent._name + "_" + _root.selectedImage._name + "_maskMc"];

                    frameImageWidth = mask._width;
                    frameImageHeight = mask._height;
                    frameImageXScale = -1;
                    frameImageYScale = -1;
                }
                else
                {
                    frameImageXScale = _root.selectedImage._xscale;
                    frameImageYScale = _root.selectedImage._yscale;

                    _root.selectedImage._xscale = 100;
                    _root.selectedImage._yscale = 100;                              

                    frameImageWidth = _root.selectedImage._width;
                    frameImageHeight = _root.selectedImage._height;             
                }

                if(_root.selectedImage["frame"])
                {}
                else
                {
                    _root.selectedImage.createEmptyMovieClip("frame",  _root.selectedImage.getNextHighestDepth());
                }
                var image_mcl1:MovieClipLoader = new MovieClipLoader();
                image_mcl1.addListener(_root.mclFrameListener);
                image_mcl1.loadClip("Images/" + objPath,  _root.selectedImage["frame"]);
            }
        }
    }

我需要以某种方式将所选择的帧图像应用到整个背景 - 而不仅仅是装饰或图像。我该怎么做?

提前感谢您的意见。如果问题没有意义,请告诉我,我会附上一些可以帮助您了解背景的图片。

3 个答案:

答案 0 :(得分:3)

您可以使用蒙版剪辑创建新的位图,然后创建平铺背景。这是as2版本:

this.beginBitmapFill(tile);

在这里它解释了如何做到这一点: http://www.kirupa.com/developer/flash8/tiledbackground_flash8.htm

唯一的区别是不是加载位图,而是可以从蒙版剪辑中创建它。

我希望它足够清楚,其他方式让我知道。

答案 1 :(得分:2)

在Flash中没有内置的方法来设置背景图像,你必须自己实现逻辑。

因此,例如,如果您希望图像填充整个背景,则可能需要手动拉伸或平铺,甚至可能是onResize。

答案 2 :(得分:1)

我写AS2已经很久了,但是......你试过创建一个位于最低层的空MovieClip吗?然后,您可以允许所选帧图像成为该MC的子项。