abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 02:22 | Pozvánky

Fedora 31 Release Party, tj. oslava nedávného vydání Fedory 31, se uskuteční ve středu 20. listopadu v Brně. Program přednášek bude upřesněn.

Ladislav Hagara | Komentářů: 0
dnes 01:11 | Nová verze

Příspěvek na blogu webové aplikace pro spolupráci na zdrojových kódech pomocí gitu Gitea (Wikipedie) představuje novinky a ukazuje náhledy nové major verze 1.10.0 této v programovacím jazyce Go naprogramované aplikace. Nově jsou například vedle sebe zobrazovány původní a nové verze obrázků.

Ladislav Hagara | Komentářů: 0
včera 22:33 | IT novinky

Společnost Docker stojící za stejnojmennou kontejnerovou technologií čelila vážným finančním problémům. Stávající investoři do ní ale vložili dalších 35 milionů dolarů a společnost Mirantis odkoupila Docker Enterprise.

Ladislav Hagara | Komentářů: 0
včera 16:11 | IT novinky

Od 24. listopadu bude možné předobjednat přenosný počítač Pocket Popcorn Computer (Pocket P.C.) s 1.2 GHz Quad-Core ARM Cortex-A53 CPU, 2GB DDR3 RAM, 32GB eMMC Memory, 4.95" Full HD IPS LCD a 3200 mAh Removable Battery. Počítač by měl být odesílán v květnu 2020. Předinstalován by měl být Debian 10.

Ladislav Hagara | Komentářů: 23
včera 11:11 | Komunita

Canonical věnoval nadaci UBports další telefony a tablety pro podporu vývoje Ubuntu Touch, tj. Ubuntu pro telefony a tablety. Vybraní vývojáři Ubuntu Touch je mohou získat zdarma.

Ladislav Hagara | Komentářů: 7
včera 09:33 | Zajímavý projekt

Společnost GitHub v rámci svého GitHub Archive Programu vytvoří několik off-line záloh open source softwaru nacházejícího se na GitHubu pro budoucí generace. První taková záloha všech aktivních repozitářů proběhne 2. února 2020 ve spolupráci se společností Pigl na jejich piqlFilmy a uložena bude v Arktickém světovém archivu. Případné obnovení ze zálohy by mělo být možné i za 1 000 let.

Ladislav Hagara | Komentářů: 6
včera 05:55 | Nová verze

Dnes a zítra probíhá v Praze konference Internet a Technologie 19 pořádaná sdružením CZ.NIC. Sledovat ji lze online.

Ladislav Hagara | Komentářů: 1
13.11. 19:44 | Nová verze

Brendan Eich, mj. autor JavaScriptu a několikadenní CEO Mozilly, představil v lednu 2016 webový prohlížeč Brave (Wikipedie, GitHub). Dnes byla vydána verze 1.0 tohoto webového prohlížeče. K dispozici jsou také balíčky pro Linux.

Ladislav Hagara | Komentářů: 11
13.11. 17:11 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 170. brněnský sraz, který proběhne v pátek 15. listopadu od 18:00 v restauraci Vegalité (Slovákova 10).

Ladislav Hagara | Komentářů: 2
13.11. 11:55 | Nová verze

Po půl roce vývoje od vydání verze 5.2 byla vydána nová verze 5.3 svobodného open source redakčního systému WordPress. Kódové označení Kirk bylo vybráno na počest amerického jazzového multiinstrumentalisty Rahsaana Rolanda Kirka.

Ladislav Hagara | Komentářů: 9
Jaké hodinky nosíte (nejčastěji)?
 (24%)
 (7%)
 (14%)
 (55%)
Celkem 147 hlasů
 Komentářů: 10, poslední včera 16:20
Rozcestník

Animované Flash bannery pomocí Inkscape, swfmill a mtasc...

5.4.2009 15:25 | Přečteno: 4254× | Technologie | Výběrový blog

Abych nějak uvedl následující článek..., jsem člověk který se straní Flashe, co může. Ale pokud jde o složitější animované reklamní proužky, potom pragmatická mysl nemůže zvolit nic lepšího, než je právě Flash.

Co se dozvíte: jak vytvářet jednoduché vektorové animace ve Flashi a Actionscriptu bez pomoci placených nástrojů.

Co se nedovíte: jak animovat pomocí deklarativního zápisu nebo pomocí křivek.

Jak moc do hloubky: jen povrchně – je to o tom, jak začít.

Flash se mi nelíbí hlavně ze dvou důvodů: 1) musím se kvůli němu učit další grafické prostředí – navíc placené (to se asi mění), 2) musím se kvůli němu učit další programovací jazyk – jakoby jich špatně člověk neuměl už dost.

Na druhou stranu přiznejme si, že internet je na to prachbídně, co se dodržování standardů týče. Flash je v tomto prostředí učiněný balzám na duši grafikům, kterým jde o design a výsledek a ne o vynucené uhýbání od záměru a obcházení situace různými hacky a triky.

Protože jsem se Flashi tak dlouho a úspěšně vyhýbal, věděl jsem o něm asi jen to, jak ho nainstalovat do prohlížeče. Návod, který vám překládám, musí být proto zákonitě plný nepřesností a chyb, ale stejně by se mohl řadě lidí hodit. Pokud někde na webu existuje podobný návod, měl jsem asi smůlu a nenarazil na něj. Prosím čtenáře, kteří mají s Flashem více zkušeností, aby mě laskavě poopravili, tam kde ujedu. Věci, které jsem příliš nezkoušel jsou označeny otazníkem v závorkách. A vůbec je celý článek jen stručným náhledem, aby usnadnil krkolomné začátky.

Začínáme

Co je třeba mít nainstalované:

Další užitečné nástroje:

Odkazy a zdroje:

Termíny a zkratky:

swf – přípona souboru pro binární flash animaci, která může navíc obsahovat bitmapové obrázky, videa, zvuky, sady fontů, vše uložené ve třídách (assets ?), které mohou být navíc doplněny programem, který je ovládá (skript – konkrétně Actionscript)

flv – flash video file

as – Actionscript – přípona označující soubor scriptu, který lze přeložit a vložit do swf. Poslední verze je tuším verze 3. My budeme pracovat s verzí 2.

Pokračujeme

Pokud máte první tři nástroje k dispozici (jsou ve verzi pro linux i pro windows..?), potom vás asi bude zajímat jak fungují.

K dispozici jsou dva konzolové programy: swfmill a mtasc. Ten první generuje jakousi kostru (skelet) výsledné animace. Umí importovat řadu objektů, ať už jde o obrázky, videa, zvuky, vektorovou grafiku (svg – vytvořené pomocí Inkscapu), nebo třeba další swf soubory a jejich části (?). Ten druhý umí přeložit Actionscript a vyrobit zcela nový swf, nebo skript vstříknout (injection) do existujícího swf. Co je kostra a co skript a jako fungují si povíme níže.

Inkscape je skvělý interaktivní nástroj pro vektorové kreslení a je o něm k nalezení mnoho návodů (http://www.abclinuxu.cz/clanky/navody/inkscape-1-seznameni).

Kostra

swfmill – je konzolový nástroj, který z nadefinované xml struktury (těsně kopírující Flash formát), vygeneruje swf. Zdrojový kód pokusného souboru test.xml může vypadat takto:

<?xml version="1.0" encoding="utf-8" ?>
<movie width="728" height="90" framerate="30">
<background color="#ffffff" />
	<frame>
		<library>
			<clip id="neco" import="test.png" />
		</library>
	<place id="neco" name="obrazek1" x="10" y="-40" depth="1" />
	</frame>
</movie>

Který konvertujeme pomocí:

swfmill simple test.xml test.swf

Výsledkem je swf soubor, který už lze zobrazit (pomocí nějakého přehrávače či webového prohlížeče) – neměl by dělat nic jiného, než jen zobrazit obrázek test.png.

Asi je jasné jak se věci mají, přesto: vše je uloženo v párovém tagu <movie> jehož parametry definují rozměry výsledné animace a počet snímků za vteřinu (nevím jak jiné Flash přehrávače, ale v prohlížeči Firefox, je swf animace spuštěna v celém okně a objekty mimo definované rozměry mohou být viditelné – čili nastavené rozměry jsou něco jako preferovaný výřez animace, kterým se přehrávače můžou řídit (?)).

Druhým důležitým párovým tagem je <frame>. Abych pravdu řekl, nezkoušel jsem vytvářet animaci pomocí swfmill. Skutečně jsem vždy jen vytvářel kostru a naimportoval v ní všechny nezbytné objekty, které se měli zobrazit. Rámec pravděpodobně definuje jeden obrázek výsledného Flashe, popřípadě jednu scénu – nezkoušel jsem. Představuji si to tak, že uvnitř framu může žít celá jedna animace, která je nezávislá na jiném framu a mezi framy lze automatizovaně přepínat (na požádání uživatele) (?).

Další párový tag <library> slouží k importovaní či definování objektů, které pak mají být přístupné přes Actionscript (?). Aby se takto importovaný nebo definovaný objekt zobrazil, je třeba ho umístit pomocí nepárového tagu <place>, který již nesídlí v sekci library.

Nepárový tag <place> slouží k umísťování nadefinovaných či naimportovaných objektů do scény. Je to jakoby se v sekci library definovaly objektové třídy a pomocí tagu place se vytvářely jejich instance. Pomocí parametru id se určují právě třída, a pomocí name, jméno výsledné instance. Kromě toho lze určit pozice a hladinu vložení – depth. Hladina musí být pro každou instanci unikátní (?), pokud se použije dvakrát place do stejné hladiny, pak se první place zakryje tím druhým.

Importování

V mých pokusech importuji a definuji nové objekty vždy v sekci library. Tento typ importu je takzvaně statický (importoval lze i v Actionsriptu – pak se hovoří o dynamickém importu) a výsledkem je, že importovaný objekt se stává součástí výsledného swf (čili je přibalen k výsledné animaci).

Tady je pár tagů k tomu určených:

<clip id="komponenta" import="komponenta.png" /> <font id="vera" import="library/vera.ttf" glyphs="0123456789" /> <sound id="myID" import="blah.mp3" /> <import file="library/library.swf" url="http://foo.com/library.swf" /> <textfield id="hellobox" width="200" height="50" size="10" font="vera" text="hello world!" />

Vkládání a volání

Tagy které leží mimo sekci library jsou například tyto:

<place id="foobar" name="myFoobar" x="10" y="10" depth="1" /> <call object="Main" method="main" />

Překlad

Překlad do swf, jak již bylo napsáno výše se provádí tímto příkazem:

swfmill simple test.xml test.swf

Kromě toho umí swfmill použít v podstatě jakékoli xml, které si nadefinujete (nezkoušel jsem - referenční manuál by měl být tady: http://swfmill.org/doc/reference.html) a měl by umět i reverzní postup – z swf generovat xml (také jsem nezkoušel). Vždy jsem používal již předdefinovaný simple.

Skript

mtasc – je také konzolový nástroj určený pro překlad Actionscriptu (AS) napsaného v textovém souboru do swf. Actionscript je syntaxí blízký Javascriptu a začít ho používat není až takový problém jak jsem se zpočátku bál (což neeliminuje možné prohřešky, kterých se můžu mimoděk dopouštět). MTASC překládá Actionsript 2. Pokud chcete pracovat s Actionsriptem 3, můžete zkusit použít Haxe (http://haxe.org/), který jsem nezkoumal, ale vypadá zajímavě.

To co musíte dodržet při programování a co nemusí být jasné na první pohled je:

  1. vše musí být umístěno ve třídě,
  2. jedna třída musí být v jednou souboru.

To nikterak nebrání možnosti použít statické funkce (nevím, zda jde o třídní metody v pravém smyslu). A jednou velmi důležitou statickou funkcí je funkce main(), kterou můžete překladači MTASC zadat v parametrech jako vstupní bod (Entry Point) – tam se začne vykonávat kód.

Zdrojový pokusný kód souboru test.as může vypadat takto:

class Main {
	static function main(mc) {
		_root.createTextField("tpole",0,0,0,800,600);
		_root.tpole.text = "Žebřiňák úpěl";
	}
}

Který se kompiluje tímto příkazem:

mtasc -swf pokus.swf -main -header 728:90:30 test.as

Čímž dostaneme soubor pokus.swf zobrazující pouze textové pole.

Globální prvky

Z AS je v podstatě přístupné vše. Celá výsledná animace (či aplikace) je přístupná z globální proměnné (?) _root. Proměnná _root někdy funguje jako asociativní pole a jindy jako kolekce objektů. Například přístup k objektům (nejčastěji MovieClipům), definovaným v kostře, lze realizovat takto:

_root.vlozenyObrazek._x = 10; _root["idVlozenehoObrazku"]._x = 10;

Což v obou případech mění ixovou souřadnici vloženého obrázku.

Další důležitý objekt je třída Stage, přes kterou lze přistupovat k rozměrům zobrazovací plochy:

Stage.width – obsahuje šířku zobrazovací plochy.

Takových globálních prvků bude jistě daleko více. Pro podrobnější reference zkuste (http://flash-reference.icod.de/)

Objekt MovieClip

Objekt MovieClip (MC) je asi nejdůležitějším objektem pro naše potřeby. Vše co bylo vloženo v kostře je vlastně třída nebo instance MC (?). V AS lze mimo jiné vytvořit vlastní třídu děděním z MC a nebo lze vytvořit prázdný MC.

MC má několik obecných atributů, které se hodí znát: _visible [true/false], _xscale [%], _yscale [%], _y [px(?)], _x [px], _rotation [stupně], _width [px], _height [px], _alpha [%]. Tyto atributy jsou public a lze je číst i měnit.

Kromě toho má třída MC i praktické metody. Například: attachMovie(), createEmptyMovieClip() pro vytváření nových instancí MC.

A pak také některé události. Například onEnterFrame(), který se volá vždy, když je třeba vygenerovat nový snímek animace.

Více informací najdete zde: http://flash-reference.icod.de/MovieClip.html

Otázka je, proč vše nenapsat jen v Actionscriptu bez pomoci nějaké kostry? Asi by to mělo jít, i když nevím jak bych importoval například svg, ale hlavně takto importované objekty nejsou zabaleny do výsledného swf. Jsou importovány dynamicky.

Další vlastnosti si budete muset nastudovat sami, nebo budou popsány v ukázkovém projektu.

Překlad

MTASC očekává jeden či více vstupních souborů typu .as a jeden výstupní. Vstupním souborům nepředchází žádný parametr, zatímco výstupním předchází parametr -swf nebo -out. Parametr -swf funguje pravděpodobně takto: pokud soubor za swf existuje, pak ho mtasc vezme updatuje třídy pomocí AS a pak ho opět uloží – čili soubor za parametrem -swf změní. Parametr -out vygeneruje pouze nový soubor. Pokud použijete -swf i -out zároveň, potom se vezme soubor za parametrem -swf, obohatí se o AS a výsledek se uloží do souboru za parametrem -out.

Pokud se bojíte, že vám MTASC zahodí některé třídy, potom použijte parametr -keep. MTASC pravděpodobně zahazuje ty třídy, které jsou nepoužití (unsed) (?).

MTASC umožňuje navíc skočit do statické funkce main() pomocí parametru -main. Pokud nespustíte nějakou metodu z xml kostry (pomocí tagu <call>), potom musíte parametr -main použít (jinak se AS nijak neaktivuje (?)).

mtasc -swf kostra.swf -keep -main skript.as -out kostraSeSkriptem.swf

Příkaz výše předpokládá, že existuje soubor kostra.swf, který vezme, přidá k němu skript, přitom existující objekty ponechá netknuté a výsledek uloží do nového souboru kostraSeSkriptem.swf. Nakonec přidá kód pro automatické spuštění statické metody main().

Poslední zajímavá věc je hlavička. Parametr -header. Má smysl ho použít ve chvíli, kdy pomocí AS generujete zcela nový soubor bez pomoci jakékoli kostry (?). Definuje šířku:výšku:framerate

Kombinace výstupů z mtasc a swfmill

Z návodu výše jste asi pochopili jak věci fungují. Přesto se pokusím princip popsat detailněji. Existují dvě principiálně odlišné metody:

  1. takzvané skeletální vstřikování (skeletal injection),
  2. takzvaná metody přirozeného vstupního bodu (natural entry poin).

Něco o nich se dozvíte zde: http://aralbalkan.com/408

Druhou metodu jsem příliš nezkoušel, a to z toho důvodu, že výsledek je složen z více swf souborů (?). Mým cílem bylo udělat co nejjednodušší swf banner – jeden soubor pro takové potřeby je ideální.

K druhé metodě bych zmínil asi jen to, že celá aplikace je zděděná z třídy MovieClip a v kostře vložena s nulovými rozměry někam do scény. Její kód se začne vykonávat metodou onLoad() - nahrazuje vlastně statickou metodu main(). Velmi podobně (?) by se asi dalo využít tagu <call>, který z kostry zavolá jednu z metod, kterou jako autoři považujete za vstupní metodu. Vstupní metody a funkce vlastně nedělají nic jiného, než že definují počáteční parametry, sestaví některé dynamicky vkládané objekty a to je vše. Zbytek dění by měl být řízen událostmi.

A nyní k metodě první. Podle některých zdrojů jí používá většina klikacích opensource GUI určených pro generování Flash animací. Využívá tu schopnost mtasc, že dokáže Actionsrcriptem obohatit, již existující swf. Takže nejprve spustíte swfmill a potom mtasc na výsledný soubor:

swfmill simple kostra.xml kostra.swf
mtasc -swf kostra.swf -keep -main skript.as -out kostraSeSkriptem.swf

Většinou jsem používal právě takovou kombinaci příkazů.

Ukázkový projekt

A nyní se podíváme na konkrétní příklad od začátku do konce. Nic složitého, jen ukázka. Začneme kreslením v Inkscapu.

Grafika

Nakreslíme obrázek jako na následujícím screenshotu:

inkscape - výsledek

Rozměr obrázku je 728x90. Jak kruh, tak text převedeme do křivek (shift + ctrl + C) – import svg není ještě úplně dokonalý a křivky jsou tak trochu jistota. Následně přiřadíme svg elementům id (to se bude hodit při vkládání konkrétních části svg obrázku). Pravé kliknutí na objekt:

inkscape - kontextové menu

Vybereme položku Vlastnosti Objektu. Jako ID nastavíme u textu: text a u kruhu: kruh.

Pak grafiku uložíme do nějakého pracovního adresáře: ~/prac/grafika.svg.

Můžeme si dovolit objekty seskupovat a dávat jim unikátní ID. Pomocí swfmill můžeme importovat i složité vektory včetně barev a průhledností, ale co ještě nefunguje jsou blur efekty a hlavně barevné přechody. Chybějící barevné přechody jsou asi největším problémem konverze svg do swf. Snad se to časem zlepší (?).

To je vše co se grafiky týká.

Kostra

Nyní vytvoříme xml kostru. Vytvoříme textový soubor ~/prac/kostra.xml a uložíme do něj následující kód:


<?xml version="1.0" encoding="utf-8" ?>
<!--Celá animace s rozměry a snímkovací frekvencí-->
<movie width="728" height="90" framerate="30">
	<!--Barva pozadí-->
	<background color="#ffffff" />
<!--Začátek snímku-->
<frame>
	<!--Začátek knihovny-->
	<library>
		<!--Importujeme pouze grafiku v svg formátu-->
		<clip id="grafika" import="grafika.svg" />
	</library>
	<!--Z svg souboru vložíme objekt s id=text
	      a přitom nezměníme polohu hloubka 
	      vložení bude 0 protože jde o pozadí scény-->
	<place id="text" name="text_0" depth="0" />
	<!--Dále vložíme kruh a nazveme ho kruh_0,
		 tento název bude zpřístupňovat objekt v AS-->
	<place id="kruh" name="kruh_0" x="10" y="0" depth="1" />
	<!--Opět vložíme stejný kruh tentokrát s názevm kruh_1-->
	<place id="kruh" name="kruh_1" x="230" y="0" depth="2" />
<!--Konec snímku-->
</frame>
<!--Konec animace-->
</movie>

Skript

Pak vytvoříme textový soubor: ~/prac/skript.as a obsahem:


// název třídy se skripetm: v tuto chvíli
// je irelevantní - dulezita je metoda main()
class Main
{
	// název vstupní metody - tuto metodu hledá mtasc,
	// když má nastaven parametr -main, musí jít o statickou metodu
	static function main()
	{
		// objekty definované v kostře jsou instancemi třídy
		// MovieClip a jsou přístupné přes proměnnou _root.
		// můžeme jim přidat některé atributy,
		// které budeme později potřebovat
		_root["kruh_0"].v = 6;		// počáteční rychlost (v ixové souřadnici)
		_root["kruh_0"].m = 0.5;	// hmotnost
		_root["kruh_0"].r = 40;		// poloměr
 
		_root["kruh_1"].v = -1;
		_root["kruh_1"].m = 5;
		_root["kruh_1"].r = 40;
 
		// nyní vytvoříme pomocnou instanci třídy MovieClip
		// tato instance bude řídit animaci
		// a kromě toho je použita k vytvoření průhledného
		// klikacího tlačítka nad celým Flashem
		var ctrl:MovieClip = _root.createEmptyMovieClip(
					"controller",
					_root.getNextHighestDepth());
 
		// začíná se kreslit klikací tlačítko
		ctrl.beginFill(0xFFFFFF);
		ctrl.moveTo(0, 0);
		ctrl.lineTo(Stage.width, 0);
		ctrl.lineTo(Stage.width, Stage.height);
		ctrl.lineTo(0, Stage.height);
		ctrl.lineTo(0, 0);
		ctrl.endFill();
		ctrl._alpha = 0;			// plná průhlednost
 
		// definujeme reakci na událost uvolnění tlačitka myši
		ctrl.onRelease = function() {
			// přepneme na požadovanou stránku
			getURL("banner.html", "_self");
		}
 
		// definujeme skript, který bude vyvolán
		// při události generování nového snímku
		ctrl.onEnterFrame = function() {
			// zjednodušíme si život pomocnou proměnnou
			// pro více objektů by se hodilo pole
			var obj1 = _root["kruh_0"];
			var obj2 = _root["kruh_1"];
 
			// ---- TADY UŽ ZAČÍNÁ SAMOTNÁ ANIMACE ----
			// pro ukázku je zvolena jednoduchá fyzika srážek
 
			// nx je pomocná ixová souřadnice
			// jde o souřadnici na kterou se objekt přesune,
			// pokud do ničeho nenarazí
			obj1.nx = obj1._x + obj1.v;
			obj2.nx = obj2._x + obj2.v;
 
			// pomocná proměnná ukazující zda došlo ke kolizi či nikoli
			obj1.collision = false;
			obj2.collision = false;
 
			// kontrola krajních mantinelů
			if (obj1.nx < 0) || (obj1.nx > Stage.width - 2*obj1.r) {
				obj1.v *= -1;
				obj1.collision = true;
			}
			if (obj2.nx < 0) || (obj2.nx > Stage.width - 2*obj2.r) {
				obj2.v *= -1;
				obj2.collision = true;
			}
 
			// kontrola kolize mezi objekty
			if Math.abs(obj1.nx - obj2.nx) < (obj1.r + obj2.r) {
				var u1 = obj1.v;
				var u2 = obj2.v;
 
				// výpočet výsledné rychlosti - uvažuje i různé hmotnosti
				obj1.v = (u1*(obj1.m - obj2.m) + 2*obj2.m*u2) / (obj1.m + obj2.m)
				obj2.v = (u2*(obj2.m - obj1.m) + 2*obj1.m*u1) / (obj1.m + obj2.m)
				obj1.collision = true;
				obj2.collision = true;
			}
 
			// pokud nedošlo ke kolizi, potom objekt skutečně přesuň
			// v opačném případě objekt nepřesouvej.
			// když se toto neudělá, mohl by objekt vyletět ze scény
			if !(obj1.collision) obj1._x = obj1.nx;
			if !(obj2.collision) obj2._x = obj2.nx;
 
			// hrátky s průhledností - po nárazu sniž průhlednost na 10%
			if (obj1.collision) obj1._alpha = 10;
			if (obj2.collision) obj2._alpha = 10;
 
			// pokud není průhlednost 100%, pomalu ji zvyšuj
			if (obj1._alpha < 100) obj1._alpha += 5;
			if (obj2._alpha < 100) obj2._alpha += 5;
		}
	}
 
}

Nyní už jen celý výsledek přeložíme:

swfmill simple kostra.xml kostra.swf
mtasc -swf kostra.swf -main skript.as -out vysledek.swf

A podíváme se na vysledek.swf – Mělo by to fungovat. Celé se to nyní sbalilo do jednoho souboru o velikosti 2,8kB.

Závěr

Na závěr bych uvedl jen tolik, že už mi Flash není tak nesympatický a že jsou nástroje jak si ho přizpůsobit obrazu svému.

Hlavní problémy:

Menší problémy:

Nějaké ty výhody:

Projekt ke stažení: ukazka.zip

       

Hodnocení: 100 %

        špatnédobré        

Obrázky

Animované Flash bannery pomocí Inkscape, swfmill a mtasc..., obrázek 1 Animované Flash bannery pomocí Inkscape, swfmill a mtasc..., obrázek 2

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

Max avatar 5.4.2009 15:34 Max | skóre: 67 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Animované Flash bannery pomocí Inkscape, swfmill a mtasc...
Proč jsi to neposlal redakci, aby to vydali jako článek? Není to škoda?
Zdar Max
Měl jsem sen ... :(
5.4.2009 15:50 snajpa | skóre: 20 | blog: snajpuv_blocek | Brno
Rozbalit Rozbalit vše Re: Animované Flash bannery pomocí Inkscape, swfmill a mtasc...
Přesně, kolikrát jinde vycházejí totální kraviny, a i za jejich vypocení dostane autor (aspoň symbolickou) odměnu. A tohle je hodně pěkně zpracovaný. I když je pravda, když píšeš do blogu, nikdo ti nemůže kecat do stylu a do toho, co napsat/nenapsat.
--- vpsFree.cz --- Virtuální servery svobodně
Adrin avatar 5.4.2009 16:18 Adrin | skóre: 13 | blog: kosmopako
Rozbalit Rozbalit vše Re: Animované Flash bannery pomocí Inkscape, swfmill a mtasc...

Zvažoval jsem to, ale mohl jsem tam nasekat faktické chyby. Zas tak moc do problému ještě nevidím. :)

6.4.2009 23:57 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Animované Flash bannery pomocí Inkscape, swfmill a mtasc...
Rád bych takový článek vydal.
5.4.2009 18:18 Kvakor
Rozbalit Rozbalit vše Re: Animované Flash bannery pomocí Inkscape, swfmill a mtasc...
Zajímavé řešení - já jsem se studoval použití knihovny Ming na generování Flashe (pro zobrasení programem generovaného videa), ale tohle má tu výhodu, že se dá použít hotový vektorový výstup - přes Ming se musí kreslit "ručně" pomocí příkazů typu SWFShape_draw<něco> a podobně.

BTW: Osbně bych termín injection v případě programového kódu raději překládal jako vložení nebo zavedení, vstřikování bych ponechal pro případy, kdy se opravdu jedná o tekutiny :-)
Adrin avatar 5.4.2009 20:07 Adrin | skóre: 13 | blog: kosmopako
Rozbalit Rozbalit vše Re: Animované Flash bannery pomocí Inkscape, swfmill a mtasc...

Ming jsem nějak přehlédl. Ale podívam se na něj. Díky.

MMCHDM: Aspoň je termín vstřikování, zábavný :)

5.4.2009 20:48 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Flash™

Výborný článek.

Jen si rýpnu do Adobe, že od té doby, co uvolnili specifikaci formátu i pro tvorbu přehrávačů, tak naopak zakázali používat slovo „Flash“. Udělali si z toho obchodní známku, takže open source nástroje jej všude nahrazují zkratkou SWF.

Vašek Lorenc avatar 5.4.2009 22:02 Vašek Lorenc | skóre: 27
Rozbalit Rozbalit vše Re: Animované Flash bannery pomocí Inkscape, swfmill a mtasc...

Skvělý příspěvek, taky bych to rád viděl jako článek.. nebo jako sérii. Zrovna nedávno jsem přemýšlel, v čem dělat vektorovou 2D animaci.. V Blenderu by to určitě šlo taky, ale mi na to seděl víc.. Nakonec to nedopadlo vůbec, zvolili jsme stop-motion, ale s touhle znalostí to možná příště zkusíme!

Škoda, že na jednoduchou vektorovou animaci pořád nic není.. a přitom knihovny jako Clutter už umí spoustu šikovných věcí.

...včetně majestátného loosa
6.4.2009 11:13 Tomáš Pelc | skóre: 22 | blog: multimedialni_pc_k_LCD_TV
Rozbalit Rozbalit vše Re: Animované Flash bannery pomocí Inkscape, swfmill a mtasc...

A Synfig http://www.synfig.com jsi nezkoušel?

 

Vašek Lorenc avatar 6.4.2009 18:09 Vašek Lorenc | skóre: 27
Rozbalit Rozbalit vše Re: Animované Flash bannery pomocí Inkscape, swfmill a mtasc...

Úplně jsem na něj zapomněl.. :( Ale zkusím aktuální verzi, díky za nakopnutí. Taky jsem našel docela zajímavý projekt, kinetic typography.

...včetně majestátného loosa

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.