Как создать плитку обоев во флексе? - PullRequest
2 голосов
/ 22 декабря 2009

Я пытаюсь сделать плитку обоев в флекс. Я сделал растяжку или нормальное использование backgroundSize как 100% и «авто». Но я понятия не имею о том, как создать плитку.

Может ли кто-нибудь помочь мне с источником, инструкцией или лучшим будет исходный код.

С уважением Zeeshan

1 Ответ

4 голосов
/ 22 декабря 2009

Создание мозаичного фона в Flex 3 недоступно при использовании стилей CSS или стилей свойств.

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

Позвольте мне дополнительно проиллюстрировать мою точку зрения с помощью некоторого кода

<mx:Canvas borderSkin="{TiledBackgroundSkin}"
    width="100%" height="100%">
</mx:Canvas>

Это ваш компонент с примененной к нему программной оболочкой границы.

Теперь вы просто создаете эту границу обложки, расширяя класс RectangularBorder. Такие как:

public class TiledBackgroundSkin extends RectangularBorder
{
    [Bindable]      
    [Embed(source='tile.jpg')]
    private var tileImageClass  :Class;
    private var tileBitmapData  :BitmapData;

    public function TiledBackgroundSkin()
    {
        super(); 
        createBitmap()
    }

    /** A private method that handles the drawing of the bitmap **/
    private function createBitmap():void
    {
        var backgroundImage:Bitmap = new tileImageClass();
        tileBitmapData = new BitmapData(backgroundImage.width,backgroundImage.height);
        tileBitmapData.draw( backgroundImage );
    }

    /** Override updateDisplayList to draw the Tiled Background **/
    override protected function updateDisplayList(  unscaledWidth:Number,unscaledHeight:Number ):void 
    {
        super.updateDisplayList(unscaledWidth,unscaledHeight );
        graphics.clear();
        graphics.beginBitmapFill( tileBitmapData );
        graphics.drawRect(0,0,unscaledWidth,unscaledHeight);
        graphics.endFill();
    }       
}

Конструктор создает растровое изображение для листов.

Затем метод updateDisplayList (вызывается после первоначального создания и для последующего изменения размера компонента) заполняет весь компонент мозаичным фоном.

Если вы хотите настроить смещение мозаичного изображения, вы должны сделать это в методе updateDisplayList

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...