Paleta barw - coś dla profesionalistów (chyba)

Technologia Flash, czyli animacja na potrzeby stron WWW to świat daleko odbiegły od zwykłego programowania i kodu. Zapytaj o pomoc i podziel się z nami Twoimi problemami z zakresu Flasha.
3DH
Nowy
Nowy
Posty: 34
Rejestracja: śr lip 04, 2007 1:17 pm

Paleta barw - coś dla profesionalistów (chyba)

Post autor: 3DH »

Hej,

Najpierw wyjaśnie o co chodzi. Chciałbym umieścić na mojej stronie parę takich pierdołowatych opcji i drobiazgów, jak np. kalkulator i paletę barw. Ale chodzi mi o taką wypasioną paletę, bardzo dokładną z wszystkimi dostępnymi kolorami :)

Przykład

Niestety. Jako, że jestem ociężały umysłowo i nie daję rady z podstawami AS, to narazie poproszę o prosty przykład. Np. w pole tekstowe wpisuje #000000 i twarz na mojej stronie zmienia kolor na czarny. Przyda się do sprawdzania barw na bieżąco.

Mam jeszcze dodatkowe pytanie. Jak widać, twarz i tło jest cieniowane. Czy bedzie możliwa zmiana z osobna tych dwóch kolorów (bo tylko z tylu składa się cieniowanie)?
Fistach
Przelotem
Przelotem
Posty: 348
Rejestracja: sob maja 03, 2003 7:50 pm
Lokalizacja: Wroclaw

Re: Paleta barw - coś dla profesionalistów (chyba)

Post autor: Fistach »

Szukaj juz było ( mój temat ). // moze być tak:

Kod: Zaznacz cały

 endRGB = new Array(209, 227, 254); 
// ale Marek poda ci inny lepszy :D

Ogólnie chodzi o oto Żeby zmieniane elementy były osobnymi mc którym nadajesz RGB osobno, gradient uzyskasz poprzez nałożenie warstw gradientowych z dużą przeźroczystością ( np. liniowy z lewej czarny 0%Alpha, prawy czarny 30% Alpha[/code]
3DH
Nowy
Nowy
Posty: 34
Rejestracja: śr lip 04, 2007 1:17 pm

Re: Paleta barw - coś dla profesionalistów (chyba)

Post autor: 3DH »

Znalazłem Twój temat. Ale nie wiem czy jest tam taka opcja o którą prosiłem, czyli 'wpisywanie' własnych kolorów (tak jak w przykładzie).

Btw. Proszę o maksymanie uproszczony kod. Dosłownie przykład zmiany koloru jednej litery, albo jednego obiektu.
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Paleta barw - coś dla profesionalistów (chyba)

Post autor: Marek_bf »

Kod: Zaznacz cały

// rysuje pole input
var kolor_txt:TextField = drawInputTxt(this, 20, 20);
// rysuje trzy mc
var my1_mc:MovieClip = drawMc(this, 50, 50, 100, 100, 0xff0000);
var my2_mc:MovieClip = drawMc(this, 80, 80, 100, 100, 0xff00ff);
var my3_mc:MovieClip = drawMc(this, 80, 80, 50, 50, 0x00ff00);
//////////////////////////////////////////////////////////////////
my1_mc.onRelease = function() {
	koloruj(kolor_txt, this);
};
my2_mc.onRelease = function() {
	koloruj(kolor_txt, this);
};
my3_mc.onRelease = function() {
	koloruj(kolor_txt, this);
};
///
function koloruj(target_txt:TextField, target_mc:MovieClip):Void {
	if (target_txt.length == 6) {
		var nowy_kolor:Color = new Color(target_mc);
		nowy_kolor.setRGB(Number("0x" + target_txt.text));
	}
}
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
function drawMc(target_mc:MovieClip, px:Number, py:Number, wx:Number, wy:Number, k:Number):MovieClip {
	var my_mc:MovieClip = target_mc.createEmptyMovieClip("my_mc" + target_mc.getNextHighestDepth(), target_mc.getNextHighestDepth());
	my_mc._x = px;
	my_mc._y = py;
	my_mc.lineStyle(0, 0x000000, 0);
	my_mc.beginFill(k, 100);
	my_mc.moveTo(0, 0);
	my_mc.lineTo(wx, 0);
	my_mc.lineTo(wx, wy);
	my_mc.lineTo(0, wy);
	my_mc.lineTo(0, 0);
	my_mc.endFill();
	return my_mc;
}
///
function drawInputTxt(target_mc:MovieClip, px:Number, py:Number):TextField {
	var input_txt:TextField = target_mc.createTextField("input_txt", target_mc.getNextHighestDepth(), px, py, 70, 18);
	input_txt.type = "input";
	input_txt.background = true;
	input_txt.backgroundColor = 0xffffff;
	input_txt.border = true;
	input_txt.borderColor = 0x000000;
	input_txt.restrict = "A-F 0-9";
	input_txt.maxChars = 6;
	return input_txt;
}
3DH
Nowy
Nowy
Posty: 34
Rejestracja: śr lip 04, 2007 1:17 pm

Re: Paleta barw - coś dla profesionalistów (chyba)

Post autor: 3DH »

Jezu... 8O

I to jest ten maksymalnie uproszczony skrypt? :-D

Gdzie tu jest kawałek odpowiedzialny za samo okienko do wpisywania koloru? Chodzi mi o samą "Próbkę koloru tekstu albo tła" z przykladu.

----

Jestem w szoku. Pierwszy raz nie mam problemów ze skryptem, i to na dodatek tak długim 8O

Twój skrypt z 3DFA

Dziękuję. Btw. szkoda, że nie używasz 3DFA :D
Ostatnio zmieniony pn sie 06, 2007 1:29 pm przez 3DH, łącznie zmieniany 1 raz.
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Paleta barw - coś dla profesionalistów (chyba)

Post autor: Marek_bf »

No nie mów, że jest skomplikowany.

Kod: Zaznacz cały

function koloruj(target_txt:TextField, target_mc:MovieClip):Void { 
   if (target_txt.length == 6) { 
      var nowy_kolor:Color = new Color(target_mc); 
      nowy_kolor.setRGB(Number("0x" + target_txt.text)); 
   } 
}
3DH
Nowy
Nowy
Posty: 34
Rejestracja: śr lip 04, 2007 1:17 pm

Re: Paleta barw - coś dla profesionalistów (chyba)

Post autor: 3DH »

Coś tam zamieszałem i dopasowałem ten skrypt do mioch potrzeb. Nie śmiem prosić o bardziej zaawansowaną paletę (a przydała by się :D), ale o jedno i tak muszę zapytać. Została mi tylko ramka, albo pole input (tzw. Edit box w 3DFA) do poprawki i nie wiem jak się za nią zabrać. To ta ramka w której wpisujesz kolor. Chciałem użyć swojej, tej z mojego prg. Problem w tym, że nie wiem jak się nazywa w innych programach...

Ten przykład powinien wam pomóc zrozumieć o co mi chodzi. Kiedy robiłem zegar, użyłem tego skryptu:

Kod: Zaznacz cały

time2 = new Date();
var monthname = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var dayname = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
day = dayname[time2.getDay()];
dat = time2.getDate();
mon = monthname[time2.getMonth()];
year = time2.getFullYear();
data2 = day+" - "+dat+" "+mon+" "+year;
Chodzi dosłownie o jedną linijke na samym końcu i napis 'data 2'. W Edit box napisałem tylko 'data 2' i po tym zabiegu wyświetlał mi dzień, miesiąc i rok. Chcę zrobić dokładnie to samo tylko, że z kolorami. Wiesz o co mi chodzi? :roll:

Btw. Zmiana kolorów na mojej stronie jest pod klawiszem F1.

---

Ok, już znalazłem.
ODPOWIEDZ