Flash CS5 - embed fonts pro HTML text

Říjen 10th, 2010

Průvodce embedováním fontů ve Flashi CS5 je vylepšený, což ale může vést ke zdání, že zobrazení HTML textu v poli s embedovanými znaky je snadné. Jak tedy bezproblémově naformátovat HTML v poli s emebdnutými znaky?

Budeme pracovat s externím CSS souborem (styl.css):

.text1 {
font-weight: bold;
color: #00ff00;
font-size: 12px;
}
.text2 {
color: #0000ff;
font-size: 12px;
font-weight: bold;
}
.text3 {
color: #ff0000;
font-size: 12px;
}

V ActionScriptu pak připojíme css k poli s html textem:

var csssheet:StyleSheet = new StyleSheet();
var reqcss:URLRequest=new URLRequest("styl.css");
var cssLoader:URLLoader = new URLLoader();
cssLoader.addEventListener(Event.COMPLETE, onCSSFileLoaded);
cssLoader.load(reqcss);
function onCSSFileLoaded(event:Event):void {
csssheet.parseCSS(cssLoader.data);
txt.styleSheet = csssheet;
txt.embedFonts = true;
txt.htmlText = "<span class='text1'>Text styl 1, </span> <span class='text2'>Text styl 2, </span><span class='text3'>Text styl 3, </span>";
}

Nesmíme zapomenout embednout oba styly (Regular, Bold) pro daný font.  POZOR! V průvodci se sice oba objeví jako emebdnuté, ale aby se skutečně exportovaly do SWF, musí být ve scéně DVĚ dynamická textová pole, kde jedno má Regular styl, druhé pak Bold. Jinak se exportuje pouze jeden styl písma.

Debug Flashplayer při chybě zablokuje Mozillu

Září 30th, 2010

Debug verzi flashplayeru využíváme všichni vývojáři flash aplikací. Nepříjemné překvapení ale mohou přichystat poslední verze Mozilly. Jakmile se ve flash animaci objeví chyba, objeví se report okno s příslušnou hláškou a prohlížeč zamrzne... co s tím? Z vlastní hlavy to nemám, ale po chvilce hledání a zkoušení zabralo toto řešení:

Úprava nastavení mozilly, tedy vepsání do adresního řádku about:config adresního a následné nastavení parametru dom.ipc.plugins.enabled.npswf32.dll na false a parametru dom.ipc.plugins.timeoutSecs na -1. Po restartu prohlížeče vše funguje jak má.

Invalid Embed directive in stylesheet

Květen 15th, 2009

Pomalý nájezd od stavby k programování mě neustále něčím překvapuje. Poslední nepříjemností bylo po otevření jednoho projektu se zhruba 100 chybových hlášek v CSS souboru projektu. Co se za tu dobu, kdy byl projekt uzavřen, mohlo sakra stát? Začal jsem znovu linkovat objekty ze SWC knihovny, ale stále se chyby objevovaly a co hůře, vůbec nemizely. Zapátral jsem tedy přes Google a naleznul cestu k řešení problému. Stačí, aby jediný soubor embedovaný nebo jinak nalinkovaný v CSS byl přesunut a ihned může vyskočit řada chyb typu "Invalid Embed directive in stylesheet". Podíval jsem se detailně na CSS soubor a opravdu našel jeden soubor, který změnil umístění a nebyla opravená jeho cesta. Po nápravě zmizel i zbytek zhruba stovky chybových hlášek.

Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation

Květen 9th, 2009

Po delší době strávené na stavbě jsem se dostal zase k práci a hned mě u jednoho projektu přivítala tahle klasická hláška, která se objevuje v okamžiku, kdy načítáme data z jiné domény a není to povoleno přes crossdomain.xml.  Jaké bylo ale moje překvapení, když se hláška objevila při načítání dat ze stejné úrovně - domény. Žádný háček v podobě subdomény nebo nadřazeného adresáře zde nebyl.

Situace byla ale zajímavější, než se zdálo. Externímy daty byl PHP soubor, jehož cesta byla brána relativně vůči SWF souboru aplikace, tento PHP soubor byl umístěn v podadresáři. Načítání fungovalo pouze v IE, Mozilla hlásila uvedenou chybu. Po zpěšném zapátrání v Googlu jsem nic rozumného nenašel, nicméně jsem při testování zkusil uvést úplnou cestu k PHP souboru. A ejhle, zafungovalo to! Takže místo relativní cesty pomohlo uvedení absolutní cesty. Snad se časem dopátrám důvodu, proč se tak stalo.

flashplayer 10 na 74%

Duben 24th, 2009

Sice teď nestíhám moc pročítat novinky kolem flashových aplikací, ale jedna mě přeci jenom zaujala, když byly nedávno zveřejněny statistiky flashplayeru 10, který se za 5 měsíců dostal už na necelých 75%, pěkná práce: http://www.adobe.com/products/player_census/flashplayer/version_penetration.html

a teď kratší přestávka

Duben 20th, 2009

Protože moje působiště vypadá momentálně takhle, tak se zde pár dní neobjeví nějaká větší "vychytávka", protože aktuálně potřebuji tlačit dělníky, aby pracovali jak mají. Tak snad se to povede :)

PS: krytina, krov, zdi, příčky, instalce, vše půjde pryč a celé hezky od znovu

Spící flashová komunita

Duben 14th, 2009

Spíme, nebo jen necháváme plynout bez povšimnutí informace týkající se flashové technologie, které se objevují na českém webu? Nemělo by být jednou z našich funkcí větší popularizace flashové technologie jako takové?

Máme tady záslužné akce kolem české Adobe User Group , máme zde RSS agregátor od českých vývojářů, kteří jsou ochotni veřejně publikovat zajímavé články pro flashovou komunitu, to jsou všechno skvělé počiny. Uvedné zdroje a setkání jsou navštěvovány těmi, kteří se už rozhodli s flashovou technologií začít a nebo je něco spojuje s Adobe produkty ( grafika, video ...).

Co ale zbytek? Máme zájem o napravovávní pověsti flashové technologie mezi ostatními vývojáři? Máme zájem na tom, aby u pr článků konkurenčních technologií byly uváděny objektivní informace?

Jakmile se pod články objevují kritické komentáře, které vycházejí ze zkreslených informací, které navíc platily někdy před 6 lety, bez adekvátní reakce kohokoliv z flashové komunity, není to dobře.

Jakmile se na Lunixovém serveru, kde se dbá na open source řešení, objevují v sekci RIA několik měsíců články o Silverlightu (Flex Builder byl zmíněj jednou na začátku, aby se neřeklo) , je něco špatně.

Když je při rozhovoru s Java programátorem terčem posměchu ActionScript 3.0, je to chyba na straně toho programátora, nebo na naší straně - flashové komunity?

Nemůže toho naše komunita udělat více a výrazněji se angažovat v online médiích? Já si myslím že ano, odborníků zde máme celou řadu...

BatchLoader pro textové soubory

Duben 10th, 2009

Poměrně často se setkávám s nutností stahování většího množství souborů najednou, jehož řešením je postupné načítání souborů jeden po druhém. Bylo by tedy určitě dobré mít nějakou třídu, která se o načtení souborů postará například v této podobě:

//instance objektu
var bLoader:BatchLoader = new BatchLoader(pole_souboru);
//načtení souborů z předaného pole
bLoader.load();
//doplnění listenerů
bLoader.addEventListener(BatchEvent.ALL_COMPLETE,loadCompl);
bLoader.addEventListener(BatchEvent.IO_ERROR,err);
function loadCompl(evt:Event):void{
  var pole_nactenych:Array = bLoader.getLoadedArray();
}

Jednoduchou třídu, která toto splňuje nalezneme v detailu článku.

Read the rest of this entry »

Včerejší a zítřejší den

Duben 7th, 2009

Po delší době jsem opět použil při práci s kalendářem malou třídu, která vrací předchozí a následující den:

package
{
public class TimeUtil
{
private static var oneDayMs:uint = (1000*60*60*24);
public static function yesterday():Date{
var today:Date = new Date();
var yest:Date = new Date();
yest.setTime(today.getTime()-oneDayMs);
return yest;
}
public static function tomorrow():Date{
var today:Date = new Date();
var tom:Date = new Date();
tom.setTime(today.getTime()+oneDayMs);
return tom;
}
}
}

Použití je snadné:

var vcera:Date = TimeUtil.yesterday();

Ve spojení s komponentou DateChooser pak můžeme omezit výběr starších dnů:

var yest:Date = TimeUtil.yesterday();
calendarComp.disabledRanges = [{rangeEnd:yest}];

Google mapy 3d

Duben 4th, 2009

Nedávno mě napadlo využít Google mapy a zkusit jejich 3d zobrazení pomocí Flashe CS4. Obával jsem se crossdomain zabezpečení, kdy nebude možné provádět 3d transformaci externích objektů, ale povedlo se:

Ovládání je jednoduché:

+ přiblížení
- oddálení
šipka vlevo/vpravo rotace
šipka nahoru/dolů pohybuje mapou
A,D pohybuje vlevo/vpravo mapkou
W,S rotuje mapu v X-ovém směru

Po zveřejnění článku na Flash.cz, který bude obsahovat jednodušší verzi mapky, tady zveřejním zroják.

Zdrojový soubor ukázky zde.