Archive for the 'tekst' Category

Niełamiąca spacja we Flashu, czyli tęsknota za   

Tu uśmiechną się wszyscy, którzy flasha uważają głównie za przyczynę buszujących po stronach www reklam. Nie wiem jak tam nowe narzędzia w FP10, ale dotąd rzeczywiście o obsłudze   (non-breaking space) w polu tekstowym deweloper Flash mógł pomarzyć. Nadal może, ale okazało się (Marcin okazał), że ów deweloper może skorzystać z fantastycznej możliwości wstawienia   zamiast niezłomnej spacji. Co to jest  ? Ano też spacja i też niezłomna. Tylko taka z czcionki – wystarczy otworzyć w windowsie Tablicę Znaków, piąty znak za małym “z”. Jeden kruczek, o którym trzeba pamiętać przy zaszywaniu podzestawu znaków, to że ten znak trzeba dołączyć. Kopiuj-wklej z Tablicy Znaków zadziała tu doskonale, bo z klawiatury ten akurat glif nie jest łatwy do wywołania.

Potem, żeby oszczędzić ręcznej redakcji tekstów, przyda się wyrażenie regularne do automatycznej podmiany zawieszek. O tym, w jakim języku zawieszki są błędem, a w jakim nie, nie będę tu pisał. Brzydkie są i z puchy im wali. A oto lekarstwo:

// zakładam, że oryginalny tekst do wstawienia mamy w zmiennej tekst1
var tekst1:String = 'wąska kolumna przeniesie o do następnej linii';
// ewentualna eksterminacja htmlowych marzeń, czyli zamiana   na spacje
var tekst2:String = tekst1.replace(' ', " ");	
// do rzeczy, czyli zamiana spacji po pojedynczych znakach otoczonych odstępami na niezłomną spację 
var tekst3:String = tekst2.replace(/\s+(\S)\s+(\S)/g, " $1 $2");			
// w tekst3 pojawi się: 'wąska kolumna przeniesie o do następnej linii'
// a na ekranie, zamiast   — niełamiąca spacja.

formatowanie liczb w actionscript, cz.2

Przyjrzawszy się po raz drugi problemowi, popełniłem poniższą metodę, zastępując poprzednią.
Trochę inne podejście, wszystko objaśnione w kodzie. Dla dobra publicznego publikuję:

		/**
		 * metoda formatuje liczbę z dokładnością zadaną przez @resolution,
		 * oddzielając tysiące znakiem z @thouSep a część ułamkową znakiem
		 * z @decPoint. Na końcu dodaje jednostkę @unit
		 * Np.:
		 * Format.Number(123.456, ' zł', 0.1) zwraca '123,5 zł'
		 * Format.Number(123.456, ' zł', 1) zwraca '123 zł'
		 * Format.Number(123.456, ' m', 10) zwraca '120 m'
		 */
		public static function number(
			v:			Number,
			unit:		String = '',
			resolution:	Number = 1,
			decPoint:	String = ',',
			thouSep:	String = ' '
		):String
		{
			var r:		String = '';
			var rDec:	String = '';
			var rInt:	String = '';
			var i:		int;
			var rIntTmp:String;
			var len: 	int;

			v = Math.round(v / resolution) * resolution;
			r = v.toString();
			// pozycja kropki dziesiętnej
			var decPointPos:int = r.lastIndexOf('.');

			// część całkowita
			if(decPointPos > -1)
				rIntTmp	= r.substr(0, decPointPos);
			else
				rIntTmp = r;

			len	= rIntTmp.length;
			// przepisujemy po 3 cyfry, dodając separator
			while(len > 3){
				rInt = thouSep + rIntTmp.substr(len - 3, len) + rInt;
				rIntTmp = rIntTmp.substr(0, len - 3);
				len = rIntTmp.length;
			}
			rInt = rIntTmp + rInt;

			// część ułamkowa
			if(resolution < 1) {
				// liczba znaków w części ułamkowej powinna być taka jak długość części ułamkowej @resolution
				var decLength = (resolution - Math.floor(resolution)).toString().length - 2;
				// część ułamkowa
				if(decPointPos > -1){
					var x:int = decPointPos + 1 + decLength;
					rDec = r.substring(decPointPos + 1, decPointPos + 1 + decLength);
				}
				// dodajemy zera na końcu, jeśli trzeba
				var zerosCount:int = decLength - rDec.length;
				for(i = 0; i < zerosCount; i++) rDec += '0';
				rDec = decPoint + rDec;
			}
			r = rInt + rDec + unit;
			return r;
		}

morizony, cluetrain i PR

Jest taka książka “Manifest Cluetrain”, wydana w polskiej wersji osiem lat temu (autorzy: R. Levine, Ch. Locke, D. Searls i D. Weinberger, tłumacz: Katarzyna Thomas i Małgorzata Cichy). Choć niezwykle wręcz przekonująca i bardzo humanistyczna mimo tematyki okołointernetowej, to jej przesłanie nie trafi do umysłów wielu szefów wielu firm przez wiele lat. Na pewno nie trafiło tam gdzie pracowałem do niedawna. Czemu się czepiam? Ano temu, że znalazłem przypadek przeciwny, dający otuchę i po prostu fajny. Do rzeczy: chodzi o język i sposób komunikowania się firmy ze światem. To, czego nie cierpię, to takie teksty: “prężnie rozwijającą się polska firma, przed którą rynek nie ma tajemnic tak w Polsce, jak i za granicą. Kompleksowe usługi i wszechstronność w działaniu wyróżnia X w branży.[...]” albo “Jesteśmy dynamicznie rozwijającą się firmą, działającą w najnowocześniejszych sektorach gospodarki. Przywiązujemy wielką wagę do bezpieczeństwa i wysokiej jakości swiadczonych usług…” Pierdu pierdu.

Dla kontrastu mam, jakby żywcem ze wspomnianego Manifestu wyjęty, blog pracowników firmy morizon.pl, nowego portalu nieruchomości. Szacunek za otwarty i swobodny sposób wyrażania się, za szerokie horyzonty i wreszcie gratulacje za sposób zarządzania współpracownikami, jaki opisują. Posty Moniki Rudnickiej czytam z przyjemnością i zainteresowaniem, nawet jeśli nie zawsze zgadzam się z Jej opinią (np. o nazwie morizon). Teksty Artura Jedlińskiego podobnie, zwłaszcza że akurat organizacja pracy zespołu to mój temat miesiąca. Oboje piszą we własnym imieniu i nie muszą podpierać się bełkotem pseudomarketingowym żeby dać odczuć w jak fajnej firmie pracują. Nie wiem czy ta firma fajna rzeczywiście jest – ale chodzi mi o jakość komunikatu, o to że wyraża prawdziwe emocje i zainteresowanie zamiast tępego tłuczenia “prężnością” i “dynamiką”.

« Previous PageNext Page »