![]() |
|
||||||||||
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Вот еще больше реализма (к моей версии), теперь есть небольшая задержка на переключение за счет хода тублера.
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);
};
|
|
|||||
|
Ветеран форума
|
Добавим дешёвые обои
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)];
__________________
BestMasterиZация |
|
|||||
|
Ветеран форума
|
Давай уж квартиру дорисуем и переедем туда )))
А ещё лучше будем сдавать местным нубам )))
__________________
BestMasterиZация |
|
|||||
|
4AM Games
|
И так =) 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});
}
}
import com.onorange.lib.events.IEventDispatcher;
interface com.onorange.lab.ui.ICheckBox extends com.onorange.lib.events.IEventDispatcher{
function setOn():Void;
function setOff():Void;
}
Я думаю понятно что можно вставить все что угодно PS я забыл в CheckBoxController вставить EventDispatcher, как нить потом=) щас уже влом
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
Надпись какую нибудь типа "Winner on/off" под ником ![]() |
|
|||||
|
Ветеран форума
|
У меня нет прав лепить такое ))) Блин придётся с администрацией договариваться
![]()
__________________
BestMasterиZация |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|