Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Декоративный Bitmap (http://www.flasher.ru/forum/showthread.php?t=213499)

Egstond 16.10.2016 14:56

Декоративный Bitmap
 
Здравствуйте, не подскажите возможно ли такое в as3 чтобы Bitmap с картинкой появлялся и исчезал с эффектом как листание странички в книжке ?

Добавлено через 1 час 49 минут
Ну или не Bitmap, а какой нить другой as3 Объект ?

Bletraut 16.10.2016 17:31

Возможно.

Egstond 16.10.2016 18:57

как ?

in4core 16.10.2016 21:07

Собственно как и в любом другом языке - ручками.
Способа я вижу как минимум 4 :
1) через маски и т.п., можно вообще в adobe ide руками замоделить
2) можно попробовать 3д движки ( там есть такие темы)
3) можно найти готовые библиотеки - и такие имеются
4) можно попробовать шейдеры - помоему кто-то выставлял такие наработки

ZackMercury 16.10.2016 21:15

http://silin.astraport.ru/#AS3/gadgets/book/bin

Egstond 16.10.2016 22:37

Цитата:

Сообщение от in4core (Сообщение 1196784)
Собственно как и в любом другом языке - ручками.
Способа я вижу как минимум 4 :
1) через маски и т.п., можно вообще в adobe ide руками замоделить
2) можно попробовать 3д движки ( там есть такие темы)
3) можно найти готовые библиотеки - и такие имеются
4) можно попробовать шейдеры - помоему кто-то выставлял такие наработки

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

похоже на то, но в так называемых "исходниках" пусто, одни заголовки..

Godwarlock 16.10.2016 23:34

Цитата:

AS3 эксперименты и полезности..

в арихивы с примерами не включены сами классы (не удобно обновлять)
их надо взять отдельно
Если кликнуть на папку AS3, там появится эта надпись с архивом

ZackMercury 16.10.2016 23:49

В смысле - пусто? А это что, по вашему?
Код AS3:

package
{
        import com.bit101.components.*;
        import flash.display.*;
        import flash.events.*;
        import flash.filters.*;
        import flash.text.*;
        import silin.book.*;
        import silin.gadgets.Preloader;
 
 
 
        /**
        * пример для листалки
        * @author silin
        */

        public class BookExample extends Sprite
        {
                private var _book:Book;
                private var _tablo:Label;
 
                public function BookExample():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        stage.align = StageAlign.TOP_LEFT;
                        stage.scaleMode = StageScaleMode.NO_SCALE;
 
                        _book = new Book(200, 260);
 
                        _book.x = 50;
                        _book.y = 50;
 
                        //битмап подолжки
                        //_book.paper = new BitmapData(200, 260, false, 0xFFFFFF);
                        _book.paper = new paperBmd(0, 0);
 
                        //иконка загрузки
                        _book.preloaderIcon = Preloader;
 
                        //иконка для обозначения ошибки/невозможности загрузки
                        _book.errorIcon = errorMc;
 
 
                        //заготовки для контента страниц
                        var g:MovieClip = new globe();
                        g.x = 150;
                        g.y = 80;
 
                        var comment:TextField = new TextField();
                        comment.autoSize = TextFieldAutoSize.CENTER;
                        comment.x = 100;
                        comment.y = 210;
                        comment.text = "картинка с диска,\n мувик из библиотеки\n плюс собственнно этот текст";
                        comment.setTextFormat(new TextFormat("_sans", 12, 0xEAD5FF, false, false));
                        comment.selectable = false;
                        comment.mouseEnabled = false;
 
                        /*
                        var test:Shape = new Shape();
                        test.graphics.beginFill(0x8080FF,0.25);
                        test.graphics.drawCircle(0, 0, 25);
                        test.x = 100;
                        test.y = 200;
                        */

 
                        //создание(определение) страниц книжки
                        //датапровайдеру передаем массив объектов PageContent, инициализирующих загрузку
                        //или создающих контент, если переданы готовые дисплейОбжекты
                        _book.dataProvider = [
                                null,//нет листа, для имитации обложки
                                new PageContent("cover.png"),//урл картинки или флешки
                                new PageContent("train.jpg"),
                                new PageContent("waterfall.jpg"),
                                new PageContent("fig1.swf"),
                                new PageContent("fig2.swf"),
                                /*new PageContent("fig3.swf"),
                                new PageContent("fig4.swf"),
                                new PageContent("fig5.swf"),
                                new PageContent("fig6.swf"),*/

                                new PageContent("fig7.swf"),
                                new PageContent("bg.jpg", g, comment) ,//картинка с диска, мувик, текст
                                new PageContent("furcation.swf"),
                                new PageContent("candle.swf"),
                                new PageContent("fake.jpg"),//несуществующая картинка
                                new PageContent()//пустая страница
                        ];
 
 
                        createControls();
                        addChild(_book);
 
                        //слушаем событие смены страниц (здесь только ради теста)
                        _book.addEventListener(BookEvent.CHANGE_PAGE, onPageChange);
 
                }
 
 
 
                //элемемнты управления
                private function createControls():void
                {
 
                        _tablo = new Label(this, 50, 315, "0");
 
                        for (var i:int = 0; i < _book.length; i+=2)
                        {
                                var but:PushButton = new PushButton(this, 80 + 20 * i, 320, i + "-" + (i + 1), onPageButClick);
                                but.setSize(35, 20);
                        }
                        var lbl:Label = new Label(this, 50, 350, "режим перелистывания");
                        var rb:RadioButton;
                        rb = new RadioButton(this, 50, 370, Book.JUMP, true, onRadioClick);
                        rb = new RadioButton(this, 120, 370, Book.LEAF, false, onRadioClick);
 
                        var cb:CheckBox;
                        cb = new CheckBox(this, 260, 360, "листать колесом", onModeButClick);
                        cb.selected = _book.wheelLeaf;
                        cb = new CheckBox(this, 260, 380, "листать мышью", onModeButClick);
                        cb.selected = _book.mouseLeaf;
                        cb = new CheckBox(this, 260, 400, "листать за контент", onModeButClick);
                        cb.selected = _book.contentLeaf;
 
                        var tempSlider:HUISlider = new HUISlider(this, 50, 390, "темп", onSliderChange);
                        tempSlider.maximum = 10;
                        tempSlider.value = _book.speed;
 
                }
 
                //обработчик смены страниц книжки
                private function onPageChange(e:BookEvent):void
                {
                        _tablo.text = "#" + e.currentPage;
                }
 
                //обработчик радикнопок режима
                private function onRadioClick(event:Event):void
                {
                        var rb:RadioButton = event.currentTarget as RadioButton;
                        _book.mode = rb.label;
                }
 
                //обработчик слайдера скрости
                private function onSliderChange(event:Event):void
                {
                        _book.speed = HUISlider(event.currentTarget).value;
                }
 
                //обработчик чекбоксов
                private function onModeButClick(event:Event):void
                {
                        var cb:CheckBox = event.currentTarget as CheckBox;
                        switch(cb.label)
                        {
                                case "режим перелистывания":
                                {
                                        _book.mode = cb.selected ? Book.LEAF : Book.JUMP;
                                        break;
                                }
 
                                case "листать колесом":
                                {
                                        _book.wheelLeaf = cb.selected;
                                        break;
                                }
 
                                case "листать мышью":
                                {
                                        _book.mouseLeaf = cb.selected;
                                        break;
                                }
 
                                case "листать за контент":
                                {
                                        _book.contentLeaf = cb.selected;
                                        break;
                                }
 
                        }
                }
 
                //обработчик кнопок страниц
                private function onPageButClick(event:Event):void
                {
                        var but:PushButton = event.currentTarget as PushButton;
                        var label:String = but.label;
                        var n:int = parseInt(label.substr(0, label.indexOf("-")));
                        _book.gotoPage(n);
 
                }
 
        }
 
}

Вот тут архив с компонентами и классами Book http://silin.astraport.ru/#About


Часовой пояс GMT +4, время: 10:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.