Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Action script 2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=49)
-   -   Кнопки (http://www.flasher.ru/forum/showthread.php?t=58976)

Alex Tuluzov 03.06.2004 17:48

Кнопки
 
Есть ли возможность создавать кнопки средствами только Action Script?

Jlekc 03.06.2004 18:14

есть, зацини на http://proto.layer51.com/

Alex Tuluzov 03.06.2004 18:49

Кнопки
 
Извини, но я не нашел ответа на твоем сайте,
как с помощью ТОЛЬКО Action Script создавать кнопки

FreeLander 03.06.2004 20:42

есть возможность создать программно мувиклип (createEmptyMovieClip) и программно же прикрутить ему рефкцию на события мыши - чем не кнопка.

Dindin 04.06.2004 13:07

только средствами ActionScript:
Код:

butCounter = 1;
function newButton(x, y, txt, ur) {
        function over() {
                bc = this._name.slice(6, 7);
                with (_root['button'+bc]) {
                        lineStyle(2, 0xDDCC33, 100);
                        colors = [0xFF9933, 0xFFCC99];
                        alphas = [100, 100];
                        ratios = [0, 0xFF];
                        matrix = {a:60, b:0, c:0, d:0, e:20, f:0, g:60, h:60, i:1};
                        beginGradientFill("linear", colors, alphas, ratios, matrix);
                        for (i=0; i<points.length; i++) {
                                lineTo(points[i].x, points[i].y);
                        }
                        endFill();
                        tf.setTextFormat(mtf2);
                }
        }
        function out() {
                bc = this._name.slice(6, 7);
                with (_root['button'+bc]) {
                        lineStyle(2, 0xDDCC33, 100);
                        colors = [0xFFCC99, 0xFF9933];
                        alphas = [100, 100];
                        ratios = [0, 0xFF];
                        matrix = {a:60, b:0, c:0, d:0, e:20, f:0, g:60, h:60, i:1};
                        beginGradientFill("linear", colors, alphas, ratios, matrix);
                        for (i=0; i<points.length; i++) {
                                lineTo(points[i].x, points[i].y);
                        }
                        endFill();
                        tf.setTextFormat(mtf1);
                }
        }
        function url() {
                bc = this._name.slice(6, 7);
                getURL(_root['button'+bc].ur);
        }
        this.butCounter = _root.butCounter;
        points = [{x:10, y:10}, {x:120, y:10}, {x:120, y:40}, {x:10, y:40}, {x:10, y:10}];
        _root.createEmptyMovieClip('button'+butCounter, butCounter);
        _root['button'+butCounter].createTextField('tf', 4, 65, 10, null, null);
        with (_root['button'+butCounter]) {
                lineStyle(2, 0xDDCC33, 100);
                colors = [0xFFCC99, 0xFF9933];
                alphas = [100, 100];
                ratios = [0, 0xFF];
                matrix = {a:60, b:0, c:0, d:0, e:20, f:0, g:60, h:60, i:1};
                beginGradientFill("linear", colors, alphas, ratios, matrix);
                for (i=0; i<points.length; i++) {
                        lineTo(points[i].x, points[i].y);
                }
                endFill();
                mtf1 = new TextFormat('Tahoma', 18, 0x663344, true);
                mtf2 = new TextFormat('Tahoma', 18, 0x33CC88, true);
                tf.autoSize = 'center';
                tf.text = txt;
                tf.setTextFormat(mtf1);
                _root['button'+butCounter].ur = ur;
                _root['button'+butCounter]._x = x;
                _root['button'+butCounter]._y = y;
        }
        _root['button'+butCounter].onRollOver = over;
        _root['button'+butCounter].onRollOut = out;
        _root['button'+butCounter].onPress = url;
        _root.butCounter++;
}
lineStyle(2, 0xDDCC33, 100);
moveTo(1, 0);
lineTo(1, 300);
newButton(0, 0, 'кнопка1', 'http://mail.ru');
newButton(0, 40, 'кнопка2', 'http://www.flasher.ru');
newButton(0, 80, 'кнопка3', 'http://yandex.ru');
newButton(0, 120, 'кнопка4', 'http://rambler.ru');
newButton(0, 160, 'кнопка5', 'http://www.punto.ru');
newButton(0, 200, 'кнопка6', 'http://google.com');
newButton(0, 240, 'кнопка7', 'http://yandex.ru');
newButton(0, 280, 'кнопка8', 'http://rambler.ru');


FreeLander 14.06.2004 17:00

2Dindin
 
Скопировал твой код, запускаю вроде работает, но если быстро подвигать мышкой над кнопками, браузер сдыхает - просто виснет, если сделать то же самое во флэше, то виснет флэш.
Это у меня такие глюки или у всех?
Если не сложно объясни, почему.
Спасибо.

Igor_MONSTR 14.06.2004 18:39

Не стоит так программно кнопки создавать!
В том тексте и так полно действий! Если что-нить крупное делать, то никакой крутой комп не потянет!!! :(

FreeLander 15.06.2004 14:56

Цитата:

Не стоит так программно кнопки создавать!
я щас программно делаю кнопки для настраиваемой из XML менюшки, в этом случае альтернативы программному созданию кнопок нет, так как всевозможные параметры (в том числе и геометрия кнопок) задаётся из XML.
Цитата:

Если что-нить крупное делать, то никакой крутой комп не потянет!!!
ещё как потянет, во всяком случае у меня ничё не тормозит. Да и у Dindinа без тормозов какое-то время пашет, но потом происходит какой-то глюк, после которого начинают пожираться ресурсы компа. Хотелось бы понять почему. Мне просто стиль программирования понравился - сразу видно, что человек именно Яву учил, а не с АкшнСкрипта начал как я.

Igor_MONSTR 23.06.2004 08:24

Вложений: 1
FreeLander , посмотри , вот игрушку сам делал...
И ты хочешь сказать , когда 2 игрока бегают по карте и оба стреляют , то у тебя игра так же плавно идет , или медленнее?
А если все 4... :rolleyes:

FreeLander 24.06.2004 13:37

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


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

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