ActionScript: применение рамки к изображению / фону? - PullRequest
2 голосов
/ 17 мая 2010

Я редактирую приложение календаря во флэш-памяти. Цель этого приложения - позволить вам выбирать свои собственные изображения и создавать из них календарь. Вы можете, в основном, перетаскивать изображения по вашему выбору, и они применяют рамку / границы или перетаскивать украшения. Вот фрагмент кода, который рисует границу / рамку на украшении / изображении по вашему выбору.

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 ]

3 голосов
/ 09 июня 2010

Вы можете создать новое растровое изображение с замаскированным клипом, а затем создать мозаичный фон. Это версия as2:

this.beginBitmapFill(tile);

И здесь объясняется, как это сделать: http://www.kirupa.com/developer/flash8/tiledbackground_flash8.htm

Единственное отличие состоит в том, что вместо загрузки растрового изображения вы можете создать его из маскированного клипа.

Надеюсь, это достаточно ясно, другие способы дайте мне знать.

2 голосов
/ 09 июня 2010

Во Flash нет встроенного способа установки фонового изображения, вы должны реализовать логику самостоятельно.

Так, например, если вы хотите, чтобы изображение заполняло весь фон, вам, возможно, придется растянуть или растянуть его вручную, может быть, даже на раз.

1 голос
/ 05 июня 2010

Прошло много времени с тех пор, как я написал AS2, но ... вы пытались создать пустой мувиклип, расположенный в нижнем слое? Затем вы можете позволить выбранному изображению кадра быть дочерним элементом этого MC.

...