. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .




 
 
SEGÉDLETEK Flash alapok

Szövegdobozok - és a varázsszó: embedding (beágyazás)
  feltöltve: 2005.08.18 | szerző: jucka | olvasva: 13622 alkalommal

       
 

SHARED  LIBRARY

Az MX 2004-es verziónál az embedFonts tulajdonság beállításával minden esetben arra utasítod a Flash-t, hogy saját könyvtárában keresse meg a beágyazandó betűtípust. Ezt semmilyen csellel nem tudod megkerülni, akkor sem, ha netán a behívó moziban adod ki a behívott szövegmezejére az utasítást, illetve sakkozol egy kicsit a TextFormat osztállyal. Az egyetlen megoldás - merthogy van - a megosztott könyvtár használata, amire egyébként az MX verziónál is van lehetőséged.
Nyiss egy új dokumentumot. Kattints a Stage-re (színpad), majd mentsd el mondjuk sharedFont néven a fla-t. Nyisd meg a könyvtárát és készíts egy Font szimbólumot úgy, ahogy eddig. A linkelésnél viszont jelöld meg az Export for runtime sharing választási lehetőséget is. Az URL ablakba a megosztásra kerülő font-ot tartalmazó swf elérési útvonalát írd. Ha azt tervezed, hogy egy könytárban lesz a felhasználó mozival, elég, ha az swf file nevét írod csak. Készítsd el az swf file-t teszteléssel (export), vagy File / Publish Settings / csak a Flash opciót válaszd ki / Publish. Kész, bezárhatod, de szerintem hagyd még egy kicsit nyitva.
Ismét nyiss egy új dokumentumot. Nevezd el és ments egyet. Megint a könyvtárra lesz szükségünk, nyisd meg. Újfent készíts egy Font szimbólumot a szokásos módon, de figyelj arra, hogy az előbbivel azonos betűtípust válassz és ugyanazt a nevet.

Mivel ennél a műveletnél tulajdonképpen csak az ID (identifier) számít, amit a linkeléskor adsz meg, ez pusztán kényelmi szempont és biztosíték arra, hogy ne tévedj :)
A Linkage Properties ablakban most mindössze egyetlen dolgot kell kiválasztanod, és ez az "Import for runtime sharing". Az aktívvá vált URL ablakba annak a file-nak a nevét és elérési útvonalát írd, amiben megosztottad a választott betűtípust: sharedFont.swf. És itt még nem ért véget kálváriánk, a betűtípust hozzá kell rendelnünk a szövegmezőhöz. Mivel ezzel a módszerrel a megosztott könyvtár font-tartalmának felhasználása csak és kizárólag a színpadra kitett szövegmező esetén lehetséges, készíts egy box-ot.
A Properties palettán a font után kutatva meglepve tapasztalhatod, hogy egy új betűtípussal bővült a választék. Ezt a csillaggal jelölt, a keresett font-nak az itteni Library-ben kapott NEVÉVEL és nem az ID-jével azonos nevű betűtípust jelöld ki a választékból. Amennyiben MX-el dolgozol, máris kezdheted a beágyazást, mert MX-ben nem így kell megosztott font-ot létrehozni. A Shared Library Assets témakör részletes taglalását máskorra halasztom, mert bőven túlmutatna jelenlegi problémáinkon. De előreszaladva egy kicsit a témában elárulom, hogy dinamikusan létrehozott szövegdobozokban éppúgy felhasználható egy megosztott könyvtár font-tartalma.
Amit talán hasznos megemlíteni még a főmozikba töltött swf-ekre visszatérve: ha mindkét verziójú Flash-el dolgozol váltva, vedd figyelembe, hogy másként dolgozzák fel a font-okkal kapcsolatos adatokat. Így, ha egy elkészült, dinamikus font-tartalmú mozit más player-re publish-olsz, annak szövegmezői nagy eséllyel másképp fognak működni, mint addig. Olyannyira meg lehet kavarni a Flash-t, hogy esetleg arra kényszerülsz, hogy minden swf-be beágyazd a betűtípust :))


<brrrrr!>  -  sortörés és egyéb állatfajták

Ez az alfejezet igen rövid lesz:

<br> // sortörés html tulajdonságú szövegben
\n // sortörés sima szövegben (Flash-ben!)
szoveg.split("\r\n").join("\n"); // dupla sortörés kiszűrése beolvasott szövegfájlból

Az "egyéb" - mert hasonló funkciót tölthet be - a html tulajdonságú szövegben a <p> tag (paragraph), ezt a formázást csak az MX 2004 ismeri.


segíccséég! nem jön be az oldalam a Flash-be :(  -  html

A Flash html tulajdonságú szövegmezője korántsem teljeskörűen támogatott. Ugyan a Flash MX 2004-es verzióval bővült a lehetőségek tárháza, de így sem rendelkezik túl sok felhasználható tag-gel. Merőben felesleges próbálkozás egy jól elkészített html oldalt megpróbálni beleszuszakolni. Kellemes újdonság az <img> tag bevezetése, de más jól használható dolog is található a felsorolásban. Íme a Flash online súgója: "Supported HTML tags". A feljövő tartalom elején találsz egy linket a CSS (Cascading Style Sheets) támogatottságáról néhány példával is kiegészítve.

Érdekesség gyanánt és inkább csak a puszta említés szintjén hagyva: A Flash html template-jei is szerkeszthetők, amennyiben valaki ennek szükségét érzi (ezek alapján készülnek az swf file-okat beágyazó html dokumentumok). Az új file azonnal meg is jelenik a kiválasztható template-ek között a Publish Settings HTML beállításainál. Akit elkötelezetten érdekel a dolog (vagy nem hiszi), járjon utána :)))

A html tulajdonságú box egyik nagy előnye a többi mellett, hogy nem kell a kiírandó szövegekben karakterenként leszámolnunk a tartalmat, hogy dőlt vagy félkövér kiemelést adjunk meg a TextFormat osztály segítségével. Viszont, amire mindkét esetben szükség van, az a használt betűtípusváltozatok beágyazása a moziba.

EMBEDDING - utoljára

A különböző változatok használatához mindkét eddig taglalt beágyazási módszert alkalmazhatod. Ami fontos viszont, hogy a módszertől függően vagy a Library-ben, vagy a színpadra készített (akár eldugott) szövegmezőkben ott legyen mindegyik felhasznált változat. Ha külső file-ből veszed a font-okat rendre ugyanazokat a változatokat, típusokat, Alias tulajdonságot kapják, mint ahol felhasználod őket. Ha a betűtípus egyik változatánál választott opció az Alias, mindegyik változatnál legyen kiválasztva, különben nem látszik majd a szöveg. Úgy döntöttem, hogy inkább a dinamikusan létrehozott szövegmezőkre kerítünk sort nehézségi fokuk miatt.

Foglalkoztunk már a TextFormat osztállyal, a következő programkód egy másik definiálási és töltési lehetőséget mutat be. Ennél a töltési módnál nem kell változó a szövegfájlba. Az utána következő kód ismét a megszokott töltési módszert alkalmazza.
Ha nem változatokat importáltunk volna a könyvtárba, a html tulajdonságú szövegmező nem jelenítené meg a <b> és <i> tag-ek által határolt szövegrészt. Itt is lehet természetesen az ID-vel hivatkozni a betűtípusra, de akkor az említett tag-ek helyett a <font> tag-et kell minden váltásnál használni.

általános szövegmező:

/* szövegdoboz és néhány tulajdonsága */
this.createTextField("helpbox", 1, 20, 20, 440, 540);
this.helpbox.wordWrap = true;
this.helpbox.embedFonts = true;

/* a Library-be importált betűtípus linkage ID-jét használtuk fel, de hivatkozhatnánk rá a font típusnevével is. Ebben az esetben a második TextFormat osztály negyedik paramétere - ami a bold tulajdonság - true lenne. (SÚGÓ!) */
var mould = new TextFormat("Font 1", 16, 0x0066FF, null, null, null, null, null, "left", null, null, 20, -3);
var mould_bold = new TextFormat("Font 2", 16, 0x0066FF, null, null, true, null, null, "center", null, null, null, null);

var charger = new LoadVars();

charger.onData = function(source) {
   if (source == undefined) { // ha nem találja a szöveg file-t...
     trace("Error loading content!");
     return;
   }
   _root.helpbox.setNewTextFormat(mould); // megelőző formázás az egész szövegre
   _root.helpbox.text = source; // az értelmezés nélküli nyers szöveg
   _root.helpbox.setTextFormat(0, 24, mould_bold); // tól-ig formázás
};

charger.load("help.txt", charger, "GET");


html tulajdonságú szövegmező:

this.createTextField("helpbox", 1, 20, 20, 440, 540);
this.helpbox.wordWrap = true;
this.helpbox.html = true;
this.helpbox.embedFonts = true;

charger.onLoad = function(success) {
   if (success) {
     _root.helpbox.htmlText = this.help;
   } else {
     trace("error");
   }
};
charger.load("help_html.txt");


szövegfájl tartalma, amelyben a Library-be importált betűtípus típusnevét (nem a linkelt nevet!!!) használjuk fel:

&help=<font face="Present" size="20" color="#0000FF"><b> H E L P </b> Ha html tulajdonságú szövegmeződ tartalmában szerepel a <b>, vagy <i> tag, mindig a betűtípus nevére hivatkozz és ágyazd be más szövegmezőkbe vagy importáld a könytárba a változatokat! </font>


hátezkrixkrax  -  fájlból olvasás

...ugye UTF8 kódolással mentetted azt a szövegfájlt? ;)
...a Flash UTF8 kódolással várja és küldi az adatokat.
 
       
 
 

© Devnet.hu. A segédletek semmilyen formában nem másolhatók, publikálhatók a Devnet.hu és a szerzők közös írásos engedélye nélkül.
 
. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .