Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   выключатель (http://www.flasher.ru/forum/showthread.php?t=80160)

Ноябрь 23.05.2006 07:40

выключатель
 
народ, как правильно сделать выключатель (кнопку с 2-мя положениями)?

пс
правильно значит красивее..

KLieriK 23.05.2006 13:12

нарисовать красиво

SINtez_v 23.05.2006 16:16

Рисуеш кнопку в одном положении потом в другом ставиш между ними моушен твин и наслаждаешся плавным переключением своего руБИЛЬНИКА )))

CBET 23.05.2006 16:39

в каком смысле выключатель?

Punk T-34 23.05.2006 16:44

ещё 1 совет:
фотографируешь тумблер во влючённом и в выключенном состояниях. Обрабатываешь в фотошопе, импортируешь во flash.
Красиво, реалистично.

Ноябрь 23.05.2006 17:38

конечно остроумно, но я про код, вот мой:
on(press){
if(p ==undefined) p=0; else p++;
}
onClipEvent(enterFrame){
if(p%2 ==0) gotoAndStop(1); else gotoAndStop(2);
}

может функция есть.. какой-нибудь свитч();...

Цитата:

Сообщение от CBET
в каком смысле выключатель?

:))))

SINtez_v 23.05.2006 19:17

Ты просил красиво тебе сказали...
Дал код свой а где вопрос ?
Что зделать то ?
Где подсказать ?

NixPN 24.05.2006 00:43

Он сказал - как лучше сделать, может у него в коде "хреновый метод" (с) =). У вас тут это любят, все ХМ называть...

KLieriK 24.05.2006 00:48

Цитата:

Сообщение от NixPN
Он сказал - как лучше сделать, может у него в коде "хреновый метод" (с) =). У вас тут это любят, все ХМ называть...

"ХМ" тут называют то что некорректно выложено!
так-же я не понимаю поставленой ему задачи.
если имееться ввиду как запрограммировать кнопку, так есть много разных вариантов. какой ему предложить так-же непонятно, так как нет цели.

SINtez_v 24.05.2006 00:54

наверно имел ввиду про код.
Я вот считаю нет красивее кода написаного коротко и по делу...

KLieriK 24.05.2006 00:55

Цитата:

Сообщение от SINtez_v
Я вот считаю нет красивее кода написаного коротко и по делу...

респект! золотые слова!

Ноябрь 24.05.2006 11:31

простые вопросы тут задавать походу нельзя, народ чувствует подвох:)
и отвечать на свои вопросы нельзя,это наверно тоже сильно смущает:))
вы бы какой код написали, если бы вам надо было сделать кнопку с 2-мя положениями, например, скрывающую и показывающую символ?

KLieriK 24.05.2006 12:13

Вложений: 1
ну ето уже ближе к делу
1. если просто 2а положения, то вполне всунуть просто 2и рисунка в саму кнопку.
2. если анимированый, посотри как зделано в прикрепленном исходнике

iNils 24.05.2006 12:16

Код:

this.createEmptyMovieClip ("mc1", 1);
mc1.lineStyle (0, 0, 100);
mc1.beginFill (0, 100);
mc1.lineTo (100, 0);
mc1.lineTo (100, 100);
mc1.lineTo (0, 100);
mc1.lineTo (0, 0);
mc1.endFill ();
mc1.duplicateMovieClip ("mc2", 2, {_alpha:0});
mc2.onPress = function () {
        if (mc1._visible) {
                mc1._visible = false;
        } else {
                mc1._visible = true;
        }
};


Ноябрь 24.05.2006 20:43

спасибо:)

KUZEN 24.05.2006 22:36

Цитата:

Сообщение от iNils
Код:

this.createEmptyMovieClip ("mc1", 1);
mc1.lineStyle (0, 0, 100);
mc1.beginFill (0, 100);
mc1.lineTo (100, 0);
mc1.lineTo (100, 100);
mc1.lineTo (0, 100);
mc1.lineTo (0, 0);
mc1.endFill ();
mc1.duplicateMovieClip ("mc2", 2, {_alpha:0});
mc2.onPress = function () {
        if (mc1._visible) {
                mc1._visible = false;
        } else {
                mc1._visible = true;
        }
};


Какойто не реалистичный выключатель :D

Может конкурс замутить, кто нарисует выключатель програмно более реалистично

iNils 24.05.2006 22:44

Цитата:

Сообщение от KUZEN
Какойто не реалистичный выключатель :D

Может конкурс замутить, кто нарисует выключатель програмно более реалистично

Он выключает и включает, куда уж более реалистично? :)

KUZEN 24.05.2006 22:51

Цитата:

Сообщение от iNils
Он выключает и включает, куда уж более реалистично? :)

Вот смотрю на стенку и выключатель там совсем другой )))

iNils 24.05.2006 23:03

Ладно, какой приз?:)

KUZEN 25.05.2006 00:16

Цитата:

Сообщение от iNils
Ладно, какой приз?:)

Всеобщее уважение , плюс к тому, которое ты честно заработал ;)

Nidl 25.05.2006 00:46

Код:

_root.zzz = 1;
_root.button.onPress = function() {
        _root.zzz = -_root.zzz;
};
_root.onEnterFrame = function() {
        if (_root.zzz == -1) {
                _root.button.gotoAndStop(2);
        }
        if (_root.zzz == 1) {
                _root.button.gotoAndStop(1);
        }
};

P.S. Приз мой )))

Nirth 25.05.2006 00:49

у тебя че то еще надо рисовать в фреймах

Nirth 25.05.2006 00:51

кстати вариант
Код:

createClassObject(mx.controls.CheckBox,"CheckBox",2,{label:"Выиграл Я!"});

Nirth 25.05.2006 00:55

Цитата:

Сам нарисуешь )))
может мне еще хелп пойти почитать=)?

Nidl 25.05.2006 00:59

Тааак , я слышу странный звук передергивания затвора ПлюсесГан ...
Уже намекаешь ...

P.S. Кошмар кругом одно и тоже ...
P.S.2. Похоже придется еще и с Nirчем воевать и этот вошел в роль как 2 двое предыдущих , эх...

Nirth 25.05.2006 01:18

а кто были предудущие=)?

Nidl 25.05.2006 01:28

Три неверных сообщения это плюс , а то и 2 все зависит на кого нарватся.
А я считать умею поэтому невыманиш ...

P.S. Вот ситуация , верно Нирч , приходится от каждого шороха шарахатся ...

P.S.2. Признаю ты победил , твой код короче .

iNils 25.05.2006 01:54

Вот думаю, может фирму по производству выключателей открыть? :)
Код:

import flash.geom.*;
MovieClip.prototype.createRectangle = function (x, y, width, height, radius) {
        if (radius != undefined or radius > 1) {
                var r = radius;
        } else {
                var r = 0;
        }
        this.moveTo (x + r, y + 0);
        this.lineTo (x + width - r, y + 0);
        if (r) {
                this.curveTo (x + width, y, x + width, y + r);
        }
        this.lineTo (x + width, y + height - r);
        if (r) {
                this.curveTo (x + width, y + height, x + width - r, y + height);
        }
        this.lineTo (x + r, y + height);
        if (r) {
                this.curveTo (x, y + height, x, y + height - r);
        }
        this.lineTo (x, y + r);
        if (r) {
                this.curveTo (x, y, x + r, y);
        }
};
////
Stage.align = "LT";
Stage.scaleMode = "noScale";
Stage.addListener (this);
this.onResize = function () {
        this.mcOff._x = (Stage.width - this.mcOff._width) / 2;
        this.mcOff._y = (Stage.height - this.mcOff._height) / 2;
        this.mcOn._width = Stage.width - 1;
        this.mcOn._height = Stage.height - 1;
};
this.createEmptyMovieClip ("mcOn", 1);
this.mcOn.lineStyle (0, 0, 0);
this.mcOn.beginFill (0x113486, 80);
this.mcOn.createRectangle (0, 0, 150, 150);
this.mcOn.endFill ();
this.mcOn._visible = false;
this.mcOn.blendMode = "multiply";
////
this.createEmptyMovieClip ("mcOff", 0);
this.mcOff.lineStyle (0, 0xCCCCCC, 100, true);
matrix = new Matrix ();
matrix.createGradientBox (250, 250, Math.PI / 4, 0, 0);
this.mcOff.beginGradientFill ("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.createRectangle (0, 0, 250, 250, 10);
this.mcOff.endFill ();
////
this.mcOff.createEmptyMovieClip ("mcRamka", 5);
this.mcOff.mcRamka._x = this.mcOff.mcRamka._y = 50;
this.mcOff.mcRamka.lineStyle (0, 0x888888);
this.mcOff.mcRamka.createRectangle (0, 0, 150, 150);
////
this.mcOff.createEmptyMovieClip ("mcOn", 4);
this.mcOff.mcOn.createEmptyMovieClip ("mc", 0);
this.mcOff.mcOn._x = this.mcOff.mcOn._y = 50;
this.mcOff.mcOn.lineStyle (0, 0, 0);
this.mcOff.mcOn.mc.lineStyle (0, 0, 0);
this.mcOff.mcOn.beginFill (0xFFFFFF);
this.mcOff.mcOn.createRectangle (0, 0, 150, 75);
this.mcOff.mcOn.endFill ();
matrix = new Matrix ();
matrix.createGradientBox (150, 65, Math.PI / 4, 75, 0);
this.mcOff.mcOn.mc.beginGradientFill ("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.mcOn.mc.createRectangle (0, 75, 150, 65);
this.mcOff.mcOn.mc.endFill ();
this.mcOff.mcOn.mc.beginFill (0xD7D7D7);
this.mcOff.mcOn.mc.createRectangle (0, 140, 150, 10);
this.mcOff.mcOn.mc.endFill ();
this.mcOff.mcOn.beginFill (0xCBCBCB);
this.mcOff.mcOn.moveTo (150, 75);
this.mcOff.mcOn.lineTo (150, 150);
this.mcOff.mcOn.lineTo (160, 145);
this.mcOff.mcOn.lineTo (150, 75);
this.mcOff.mcOn.endFill ();
////
this.mcOff.createEmptyMovieClip ("mcOff", 3);
this.mcOff.mcOff.createEmptyMovieClip ("mc", 3);
this.mcOff.mcOff._visible = false;
this.mcOff.mcOff._x = this.mcOff.mcOff._y = 50;
this.mcOff.mcOff.mc.lineStyle (0, 0, 0);
this.mcOff.mcOff.lineStyle (0, 0, 0);
this.mcOff.mcOff.beginFill (0xCBCBCB, 40);
this.mcOff.mcOff.moveTo (150, 0);
this.mcOff.mcOff.lineTo (150, 75);
this.mcOff.mcOff.lineTo (160, 15);
this.mcOff.mcOff.lineTo (150, 0);
this.mcOff.mcOff.endFill ();
this.mcOff.mcOff.mc.beginFill (0xE2E2E2);
this.mcOff.mcOff.mc.createRectangle (0, 0, 150, 10);
this.mcOff.mcOff.mc.endFill ();
matrix = new Matrix ();
matrix.createGradientBox (150, 65, Math.PI / 4, 75, 0);
this.mcOff.mcOff.mc.beginFill (0xFF0000);
this.mcOff.mcOff.mc.beginGradientFill ("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.mcOff.mc.createRectangle (0, 10, 150, 65);
this.mcOff.mcOff.mc.endFill ();
this.mcOff.mcOff.beginFill (0xFFFFFF);
this.mcOff.mcOff.createRectangle (0, 75, 150, 75);
this.mcOff.mcOff.endFill ();
////
this.mcOff.mcOff.mc.onPress = function () {
        this._parent._visible = false;
        this._parent._parent.mcOn._visible = true;
        this._parent._parent._parent.mcOn._visible = false;
};
this.mcOff.mcOn.mc.onPress = function () {
        this._parent._visible = false;
        this._parent._parent.mcOff._visible = true;
        this._parent._parent._parent.mcOn._visible = true;
};

PS. А больше всего мне размер swf понравился :)

Ноябрь 25.05.2006 02:11

ладно конкурс так конкурс:)
прикольно:)

KUZEN 25.05.2006 02:55

Добавим реалистичности с помощью фильтров

Код:

import flash.geom.*;
MovieClip.prototype.createRectangle = function(x, y, width, height, radius) {
        if (radius != undefined or radius>1) {
                var r = radius;
        } else {
                var r = 0;
        }
        this.moveTo(x+r, y+0);
        this.lineTo(x+width-r, y+0);
        if (r) {
                this.curveTo(x+width, y, x+width, y+r);
        }
        this.lineTo(x+width, y+height-r);
        if (r) {
                this.curveTo(x+width, y+height, x+width-r, y+height);
        }
        this.lineTo(x+r, y+height);
        if (r) {
                this.curveTo(x, y+height, x, y+height-r);
        }
        this.lineTo(x, y+r);
        if (r) {
                this.curveTo(x, y, x+r, y);
        }
};
////
Stage.align = "LT";
Stage.scaleMode = "noScale";
Stage.addListener(this);
this.onResize = function() {
        this.mcOff._x = (Stage.width-this.mcOff._width)/2;
        this.mcOff._y = (Stage.height-this.mcOff._height)/2;
        this.mcOn._width = Stage.width-1;
        this.mcOn._height = Stage.height-1;
};
this.createEmptyMovieClip("mcOn", 1);
this.mcOn.lineStyle(0, 0, 0);
this.mcOn.beginFill(0x113486, 80);
this.mcOn.createRectangle(0, 0, 150, 150);
this.mcOn.endFill();
this.mcOn._visible = false;
this.mcOn.blendMode = "multiply";
////
this.createEmptyMovieClip("mcOff", 0);
this.mcOff.lineStyle(0, 0xCCCCCC, 100, true);
matrix = new Matrix();
matrix.createGradientBox(250, 250, Math.PI/4, 0, 0);
this.mcOff.beginGradientFill("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.createRectangle(0, 0, 250, 250, 10);
this.mcOff.endFill();
////
this.mcOff.createEmptyMovieClip("mcRamka", 5);
this.mcOff.mcRamka._x = this.mcOff.mcRamka._y=50;
this.mcOff.mcRamka.lineStyle(0, 0x999999);
this.mcOff.mcRamka.createRectangle(0, 0, 150, 150);
////
this.mcOff.createEmptyMovieClip("mcOn", 4);
this.mcOff.mcOn.createEmptyMovieClip("mc", 0);
this.mcOff.mcOn._x = this.mcOff.mcOn._y=50;
this.mcOff.mcOn.lineStyle(0, 0, 0);
this.mcOff.mcOn.mc.lineStyle(0, 0, 0);
this.mcOff.mcOn.beginFill(0xFFFFFF);
this.mcOff.mcOn.createRectangle(0, 0, 150, 75);
this.mcOff.mcOn.endFill();
matrix = new Matrix();
matrix.createGradientBox(150, 65, Math.PI/4, 75, 0);
this.mcOff.mcOn.mc.beginGradientFill("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.mcOn.mc.createRectangle(0, 75, 150, 65);
this.mcOff.mcOn.mc.endFill();
this.mcOff.mcOn.mc.beginFill(0xD7D7D7);
this.mcOff.mcOn.mc.createRectangle(0, 140, 150, 10);
this.mcOff.mcOn.mc.endFill();
this.mcOff.mcOn.beginFill(0xCBCBCB);
this.mcOff.mcOn.moveTo(150, 75);
this.mcOff.mcOn.lineTo(150, 150);
this.mcOff.mcOn.lineTo(160, 145);
this.mcOff.mcOn.lineTo(150, 75);
this.mcOff.mcOn.endFill();
////
this.mcOff.createEmptyMovieClip("mcOff", 3);
this.mcOff.mcOff.createEmptyMovieClip("mc", 3);
this.mcOff.mcOff._visible = false;
this.mcOff.mcOff._x = this.mcOff.mcOff._y=50;
this.mcOff.mcOff.mc.lineStyle(0, 0, 0);
this.mcOff.mcOff.lineStyle(0, 0, 0);
this.mcOff.mcOff.beginFill(0xCBCBCB, 40);
this.mcOff.mcOff.moveTo(150, 0);
this.mcOff.mcOff.lineTo(150, 75);
this.mcOff.mcOff.lineTo(160, 15);
this.mcOff.mcOff.lineTo(150, 0);
this.mcOff.mcOff.endFill();
this.mcOff.mcOff.mc.beginFill(0xE2E2E2);
this.mcOff.mcOff.mc.createRectangle(0, 0, 150, 10);
this.mcOff.mcOff.mc.endFill();
matrix = new Matrix();
matrix.createGradientBox(150, 65, Math.PI/4, 75, 0);
this.mcOff.mcOff.mc.beginFill(0xFF0000);
this.mcOff.mcOff.mc.beginGradientFill("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.mcOff.mc.createRectangle(0, 10, 150, 65);
this.mcOff.mcOff.mc.endFill();
this.mcOff.mcOff.beginFill(0xFFFFFF);
this.mcOff.mcOff.createRectangle(0, 75, 150, 75);
this.mcOff.mcOff.endFill();
////
this.mcOff.mcOff.mc.onPress = function() {
        this._parent._visible = false;
        this._parent._parent.mcOn._visible = true;
        this._parent._parent._parent.mcOn._visible = false;
};
this.mcOff.mcOn.mc.onPress = function() {
        this._parent._visible = false;
        this._parent._parent.mcOff._visible = true;
        this._parent._parent._parent.mcOn._visible = true;
};
//
//
import flash.filters.DropShadowFilter;
import flash.filters.BevelFilter;
import flash.filters.BlurFilter;
f = [];
f.push(new DropShadowFilter(0, 0, 0x000000, .8, 5, 5, 1, 3, false, false, false));
f.push(new BevelFilter(5, 45, 0xFFFFFF, .8, 0xDCDCDC, .8, 5, 5, 5, 3, "inner", false));
var filterArray:Array = new Array();
this.mcOff.filters = f;
this.mcOff.mcRamka.filters = [new DropShadowFilter(0, 0, 0x000000, .5, 5, 5, 2, 3, false, false, false)];
this.mcOff.mcOn.filters = this.mcOff.mcOff.filters=[new BlurFilter(5, 5, 3)];


iNils 25.05.2006 03:09

Перебор с блюром и теперь не видно что выключатель переключается.

iNils 25.05.2006 03:17

Вот еще больше реализма (к моей версии), теперь есть небольшая задержка на переключение за счет хода тублера.
Код:

import flash.geom.*;
MovieClip.prototype.createRectangle = function (x, y, width, height, radius) {
        if (radius != undefined or radius > 1) {
                var r = radius;
        } else {
                var r = 0;
        }
        this.moveTo (x + r, y + 0);
        this.lineTo (x + width - r, y + 0);
        if (r) {
                this.curveTo (x + width, y, x + width, y + r);
        }
        this.lineTo (x + width, y + height - r);
        if (r) {
                this.curveTo (x + width, y + height, x + width - r, y + height);
        }
        this.lineTo (x + r, y + height);
        if (r) {
                this.curveTo (x, y + height, x, y + height - r);
        }
        this.lineTo (x, y + r);
        if (r) {
                this.curveTo (x, y, x + r, y);
        }
};
////
Stage.align = "LT";
Stage.scaleMode = "noScale";
Stage.addListener (this);
this.onResize = function () {
        this.mcOff._x = (Stage.width - this.mcOff._width) / 2;
        this.mcOff._y = (Stage.height - this.mcOff._height) / 2;
        this.mcOn._width = Stage.width - 1;
        this.mcOn._height = Stage.height - 1;
};
this.createEmptyMovieClip ("mcOn", 1);
this.mcOn.lineStyle (0, 0, 0);
this.mcOn.beginFill (0x113486, 80);
this.mcOn.createRectangle (0, 0, 150, 150);
this.mcOn.endFill ();
this.mcOn._visible = false;
this.mcOn.blendMode = "multiply";
////
this.createEmptyMovieClip ("mcOff", 0);
this.mcOff.lineStyle (0, 0xCCCCCC, 100, true);
matrix = new Matrix ();
matrix.createGradientBox (250, 250, Math.PI / 4, 0, 0);
this.mcOff.beginGradientFill ("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.createRectangle (0, 0, 250, 250, 10);
this.mcOff.endFill ();
////
this.mcOff.createEmptyMovieClip ("mcRamka", 5);
this.mcOff.mcRamka._x = this.mcOff.mcRamka._y = 50;
this.mcOff.mcRamka.lineStyle (0, 0x888888);
this.mcOff.mcRamka.createRectangle (0, 0, 150, 150);
////
this.mcOff.createEmptyMovieClip ("mcOn", 4);
this.mcOff.mcOn.createEmptyMovieClip ("mc", 0);
this.mcOff.mcOn._x = this.mcOff.mcOn._y = 50;
this.mcOff.mcOn.lineStyle (0, 0, 0);
this.mcOff.mcOn.mc.lineStyle (0, 0, 0);
this.mcOff.mcOn.beginFill (0xFFFFFF);
this.mcOff.mcOn.createRectangle (0, 0, 150, 75);
this.mcOff.mcOn.endFill ();
matrix = new Matrix ();
matrix.createGradientBox (150, 65, Math.PI / 4, 75, 0);
this.mcOff.mcOn.mc.beginGradientFill ("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.mcOn.mc.createRectangle (0, 75, 150, 65);
this.mcOff.mcOn.mc.endFill ();
this.mcOff.mcOn.mc.beginFill (0xD7D7D7);
this.mcOff.mcOn.mc.createRectangle (0, 140, 150, 10);
this.mcOff.mcOn.mc.endFill ();
this.mcOff.mcOn.beginFill (0xCBCBCB);
this.mcOff.mcOn.moveTo (150, 75);
this.mcOff.mcOn.lineTo (150, 150);
this.mcOff.mcOn.lineTo (160, 145);
this.mcOff.mcOn.lineTo (150, 75);
this.mcOff.mcOn.endFill ();
////
this.mcOff.createEmptyMovieClip ("mcOff", 3);
this.mcOff.mcOff.createEmptyMovieClip ("mc", 3);
this.mcOff.mcOff._visible = false;
this.mcOff.mcOff._x = this.mcOff.mcOff._y = 50;
this.mcOff.mcOff.mc.lineStyle (0, 0, 0);
this.mcOff.mcOff.lineStyle (0, 0, 0);
this.mcOff.mcOff.beginFill (0xCBCBCB, 40);
this.mcOff.mcOff.moveTo (150, 0);
this.mcOff.mcOff.lineTo (150, 75);
this.mcOff.mcOff.lineTo (160, 15);
this.mcOff.mcOff.lineTo (150, 0);
this.mcOff.mcOff.endFill ();
this.mcOff.mcOff.mc.beginFill (0xE2E2E2);
this.mcOff.mcOff.mc.createRectangle (0, 0, 150, 10);
this.mcOff.mcOff.mc.endFill ();
matrix = new Matrix ();
matrix.createGradientBox (150, 65, Math.PI / 4, 75, 0);
this.mcOff.mcOff.mc.beginFill (0xFF0000);
this.mcOff.mcOff.mc.beginGradientFill ("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.mcOff.mc.createRectangle (0, 10, 150, 65);
this.mcOff.mcOff.mc.endFill ();
this.mcOff.mcOff.beginFill (0xFFFFFF);
this.mcOff.mcOff.createRectangle (0, 75, 150, 75);
this.mcOff.mcOff.endFill ();
////
this.mcOff.mcOff.mc.onPress = function () {
        _global.idInterval = setInterval (this, "changeOff", 150);
};
this.mcOff.mcOn.mc.onPress = function () {
        _global.idInterval = setInterval (this, "changeOn", 150);
};
this.mcOff.mcOff.mc.changeOff = function () {
        this._parent._visible = false;
        this._parent._parent.mcOn._visible = true;
        this._parent._parent._parent.mcOn._visible = false;
        clearInterval (idInterval);
};
this.mcOff.mcOn.mc.changeOn = function () {
        this._parent._visible = false;
        this._parent._parent.mcOff._visible = true;
        this._parent._parent._parent.mcOn._visible = true;
        clearInterval (idInterval);
};


KUZEN 25.05.2006 03:29

Добавим дешёвые обои :D

Код:

import flash.geom.*;
MovieClip.prototype.createRectangle = function(x, y, width, height, radius) {
        if (radius != undefined or radius>1) {
                var r = radius;
        } else {
                var r = 0;
        }
        this.moveTo(x+r, y+0);
        this.lineTo(x+width-r, y+0);
        if (r) {
                this.curveTo(x+width, y, x+width, y+r);
        }
        this.lineTo(x+width, y+height-r);
        if (r) {
                this.curveTo(x+width, y+height, x+width-r, y+height);
        }
        this.lineTo(x+r, y+height);
        if (r) {
                this.curveTo(x, y+height, x, y+height-r);
        }
        this.lineTo(x, y+r);
        if (r) {
                this.curveTo(x, y, x+r, y);
        }
};
////
Stage.align = "LT";
Stage.scaleMode = "noScale";
Stage.addListener(this);
this.onResize = function() {
        this.mcOff._x = (Stage.width-this.mcOff._width)/2;
        this.mcOff._y = (Stage.height-this.mcOff._height)/2;
        this.mcOn._width = Stage.width-1;
        this.mcOn._height = Stage.height-1;
        //
        this.createEmptyMovieClip("gradient_mc", -1);
        with (gradient_mc) {
                var fillType:String = "linear";
                var colors:Array = [0xEED9BB, 0x74511D];
                var alphas:Array = [100, 100];
                var ratios:Array = [230, 231];
                var matrix:Matrix = new Matrix();
                matrix.createGradientBox(20, 1, 0, 0, 0);
                var spreadMethod:String = "repeat";
                beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, 0.75);
                moveTo(0, 0);
                lineTo(0, Stage.height);
                lineTo(Stage.width, Stage.height);
                lineTo(Stage.width, 0);
                lineTo(0, 0);
                endFill();
        }
};
this.createEmptyMovieClip("mcOn", 1);
this.mcOn.lineStyle(0, 0, 0);
this.mcOn.beginFill(0x113486, 80);
this.mcOn.createRectangle(0, 0, 150, 150);
this.mcOn.endFill();
this.mcOn._visible = false;
this.mcOn.blendMode = "multiply";
////
this.createEmptyMovieClip("mcOff", 0);
this.mcOff.lineStyle(0, 0xCCCCCC, 100, true);
matrix = new Matrix();
matrix.createGradientBox(250, 250, Math.PI/4, 0, 0);
this.mcOff.beginGradientFill("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.createRectangle(0, 0, 250, 250, 10);
this.mcOff.endFill();
////
this.mcOff.createEmptyMovieClip("mcRamka", 5);
this.mcOff.mcRamka._x = this.mcOff.mcRamka._y=50;
this.mcOff.mcRamka.lineStyle(0, 0x999999);
this.mcOff.mcRamka.createRectangle(0, 0, 150, 150);
////
this.mcOff.createEmptyMovieClip("mcOn", 4);
this.mcOff.mcOn.createEmptyMovieClip("mc", 0);
this.mcOff.mcOn._x = this.mcOff.mcOn._y=50;
this.mcOff.mcOn.lineStyle(0, 0, 0);
this.mcOff.mcOn.mc.lineStyle(0, 0, 0);
this.mcOff.mcOn.beginFill(0xFFFFFF);
this.mcOff.mcOn.createRectangle(0, 0, 150, 75);
this.mcOff.mcOn.endFill();
matrix = new Matrix();
matrix.createGradientBox(150, 65, Math.PI/4, 75, 0);
this.mcOff.mcOn.mc.beginGradientFill("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.mcOn.mc.createRectangle(0, 75, 150, 65);
this.mcOff.mcOn.mc.endFill();
this.mcOff.mcOn.mc.beginFill(0xD7D7D7);
this.mcOff.mcOn.mc.createRectangle(0, 140, 150, 10);
this.mcOff.mcOn.mc.endFill();
this.mcOff.mcOn.beginFill(0xCBCBCB);
this.mcOff.mcOn.moveTo(150, 75);
this.mcOff.mcOn.lineTo(150, 150);
this.mcOff.mcOn.lineTo(160, 145);
this.mcOff.mcOn.lineTo(150, 75);
this.mcOff.mcOn.endFill();
////
this.mcOff.createEmptyMovieClip("mcOff", 3);
this.mcOff.mcOff.createEmptyMovieClip("mc", 3);
this.mcOff.mcOff._visible = false;
this.mcOff.mcOff._x = this.mcOff.mcOff._y=50;
this.mcOff.mcOff.mc.lineStyle(0, 0, 0);
this.mcOff.mcOff.lineStyle(0, 0, 0);
this.mcOff.mcOff.beginFill(0xCBCBCB, 40);
this.mcOff.mcOff.moveTo(150, 0);
this.mcOff.mcOff.lineTo(150, 75);
this.mcOff.mcOff.lineTo(160, 15);
this.mcOff.mcOff.lineTo(150, 0);
this.mcOff.mcOff.endFill();
this.mcOff.mcOff.mc.beginFill(0xE2E2E2);
this.mcOff.mcOff.mc.createRectangle(0, 0, 150, 10);
this.mcOff.mcOff.mc.endFill();
matrix = new Matrix();
matrix.createGradientBox(150, 65, Math.PI/4, 75, 0);
this.mcOff.mcOff.mc.beginFill(0xFF0000);
this.mcOff.mcOff.mc.beginGradientFill("linear", [0xFFFFFF, 0xEAEAEA], [100, 100], [0, 255], matrix);
this.mcOff.mcOff.mc.createRectangle(0, 10, 150, 65);
this.mcOff.mcOff.mc.endFill();
this.mcOff.mcOff.beginFill(0xFFFFFF);
this.mcOff.mcOff.createRectangle(0, 75, 150, 75);
this.mcOff.mcOff.endFill();
////
this.mcOff.mcOff.mc.onPress = function() {
        this._parent._visible = false;
        this._parent._parent.mcOn._visible = true;
        this._parent._parent._parent.mcOn._visible = false;
};
this.mcOff.mcOn.mc.onPress = function() {
        this._parent._visible = false;
        this._parent._parent.mcOff._visible = true;
        this._parent._parent._parent.mcOn._visible = true;
};
//
//
import flash.filters.DropShadowFilter;
import flash.filters.BevelFilter;
import flash.filters.BlurFilter;
f = [];
f.push(new BevelFilter(5, 45, 0xFFFFFF, .8, 0xDCDCDC, .8, 5, 5, 5, 3, "inner", false));
f.push(new BevelFilter(1, 235, 0x333333, 1, 0x333333, 1, 5, 5, 2, 3, "outer", false));
var filterArray:Array = new Array();
this.mcOff.filters = f;
this.mcOff.mcRamka.filters = [new DropShadowFilter(0, 0, 0x000000, .5, 5, 5, 2, 3, false, false, false)];
this.mcOff.mcOn.filters = this.mcOff.mcOff.filters=[new BlurFilter(2, 2, 3)];


iNils 25.05.2006 03:32

Короче, где мой приз? :D

KUZEN 25.05.2006 03:33

Давай уж квартиру дорисуем и переедем туда )))
А ещё лучше будем сдавать местным нубам )))

Nirth 25.05.2006 03:37

Вложений: 1
И так =) Ultimate Orange CheckBox Trigger And Radio Button Framework =)
Составляющие части
класс CheckBoxController
Код:

import com.onorange.lab.ui.ICheckBox;
import mx.utils.Delegate;
class com.onorange.lab.ui.CheckBoxController {
        public static var ON:String = "on";
        public static var OFF:String = "off";
        //       
        private var target:ICheckBox;
        private var isOn:Boolean;
        private var currentState:String;
       
       
        public function CheckBoxController(target:ICheckBox,defaultValue:Boolean) {
                isOn = (defaultValue == undefined) ? false : true;
                this.target = target;
                target.addEventListener("click",Delegate.create(this,changeState));
        }
       
        public function set state(val:String):Void {
                if(val == ON || val == OFF) {
                        if(val == ON) {
                                target.setOn();
                               
                        }else if(val == OFF) {
                                target.setOff();
                        }
                        currentState = val;
                }
        }
        public function get state():String {
                return currentState;
        }
       
        private function changeState(evt:Object):Void {
                state = (currentState == ON)? OFF:ON;
        }
}

Занимается управлением тригера.

Два абстрактных класса
AbstractCheckBoxMovieClip и AbstractCheckBox являються базовыми классами для чекбоксов(первый если экстендим мувиклип, второй если обжект)
Код:

import mx.events.EventDispatcher;
import com.onorange.lib.events.IEventDispatcher;
class com.onorange.lab.ui.AbstractCheckBoxMovieClip
extends MovieClip
implements IEventDispatcher{
       
        public function AbstractCheckBoxMovieClip () {
                EventDispatcher.initialize(this);
                onRelease = dispatchClick;
        }
       
        public function addEventListener(type:String,target:Object):Void {
        }
        public function removeEventListener(type:String,target:Object):Void {
        }
        public function dispatchEvent(eventObject:Object):Void{
        }
       
        private function dispatchClick():Void {
                dispatchEvent({type:'click',target:this});
        }
}

Код:

import mx.events.EventDispatcher;
import com.onorange.lib.events.IEventDispatcher;
class com.onorange.lab.ui.AbstractCheckBox
implements IEventDispatcher {
        private var container:MovieClip;
        public function AbstractCheckBox (parent:MovieClip) {
                EventDispatcher.initialize(this);
                container = parent.createEmptyMovieClip("container_mc",parent.getNextHighestDepth());
                container.onRelease = dispatchClick;               
        }
        public function addEventListener(type:String,target:Object):Void {
        }
        public function removeEventListener(type:String,target:Object):Void {
        }
        public function dispatchEvent(eventObject:Object):Void {
        }
       
        private function dispatchClick():Void {
                dispatchEvent({type:'click',target:this});
        }
}

Интерфейс ICheckBox все наши тригеры должны реализовывать его
Код:

import com.onorange.lib.events.IEventDispatcher;
interface com.onorange.lab.ui.ICheckBox extends com.onorange.lib.events.IEventDispatcher{
        function setOn():Void;
        function setOff():Void;
}

делать навороченные примеры влом, вот два простейших примераВложение 14193

Я думаю понятно что можно вставить все что угодно

PS я забыл в CheckBoxController вставить EventDispatcher, как нить потом=) щас уже влом

iNils 25.05.2006 03:45

Цитата:

Сообщение от KUZEN
Давай уж квартиру дорисуем и переедем туда )))
А ещё лучше будем сдавать местным нубам )))

Не отмазывайся, давай приз :) Надпись какую нибудь типа "Winner on/off" под ником :)

KUZEN 25.05.2006 03:49

У меня нет прав лепить такое ))) Блин придётся с администрацией договариваться ;)


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

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