Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.05.2006, 03:09
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 31  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Перебор с блюром и теперь не видно что выключатель переключается.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 25.05.2006 в 03:16.
Старый 25.05.2006, 03:17
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 32  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: 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);
};
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 25.05.2006, 03:29
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 33  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
Добавим дешёвые обои

Код:
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ация

Старый 25.05.2006, 03:32
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 34  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Короче, где мой приз?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 25.05.2006, 03:33
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 35  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
Давай уж квартиру дорисуем и переедем туда )))
А ещё лучше будем сдавать местным нубам )))
__________________
BestMasterиZация

Старый 25.05.2006, 03:37
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 36  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
И так =) 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;
}
делать навороченные примеры влом, вот два простейших примераcheckBox.rar

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

PS я забыл в CheckBoxController вставить EventDispatcher, как нить потом=) щас уже влом
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 25.05.2006, 03:45
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 37  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от KUZEN
Давай уж квартиру дорисуем и переедем туда )))
А ещё лучше будем сдавать местным нубам )))
Не отмазывайся, давай приз Надпись какую нибудь типа "Winner on/off" под ником
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 25.05.2006, 03:49
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 38  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
У меня нет прав лепить такое ))) Блин придётся с администрацией договариваться
__________________
BestMasterиZация

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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