<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TYPO3 loves Flash</title>
	<atom:link href="http://typo3lovesflash.der-gestalt.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://typo3lovesflash.der-gestalt.de</link>
	<description>How to turn them into a couple</description>
	<lastBuildDate>Mon, 16 May 2011 10:16:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flash Builder 4.5 &#8211; Mobile Development &#8211; MobileApplication zu ViewNavigatorApplication</title>
		<link>http://typo3lovesflash.der-gestalt.de/flash-builder-4-5-mobile-development-mobileapplication-zu-viewnavigatorapplication/</link>
		<comments>http://typo3lovesflash.der-gestalt.de/flash-builder-4-5-mobile-development-mobileapplication-zu-viewnavigatorapplication/#comments</comments>
		<pubDate>Mon, 16 May 2011 10:16:48 +0000</pubDate>
		<dc:creator>Maximilian</dc:creator>
				<category><![CDATA[Bachelorarbeit]]></category>

		<guid isPermaLink="false">http://typo3lovesflash.der-gestalt.de/?p=106</guid>
		<description><![CDATA[Für alle, die genau wie ich, schon mit der Preview-Version des Flash Builder 4.5 gearbeitet haben und in den letzten Tagen auf von Flash Builder 4 Burrito auf Flash Builder 4.5 umgestiegen sind, gibt es eine Änderung in der API.
Mobile Applications beginnen nicht mehr mit

&#160;
&#60;s:MobileApplication&#62;
&#160;
....
&#160;
&#60;/s:MobileApplication&#62;

MobileApplication wurde umbenannt in

&#160;
&#60;s:ViewNavigatorApplication&#62;
&#160;
....
&#160;
&#60;/s:ViewNavigatorApplication&#62;

]]></description>
			<content:encoded><![CDATA[<p>Für alle, die genau wie ich, schon mit der Preview-Version des Flash Builder 4.5 gearbeitet haben und in den letzten Tagen auf von Flash Builder 4 Burrito auf Flash Builder 4.5 umgestiegen sind, gibt es eine Änderung in der API.<br />
Mobile Applications beginnen nicht mehr mit</p>

<div class="wp_syntax"><div class="code"><pre class="as" style="font-family:monospace;">&nbsp;
&lt;s:MobileApplication&gt;
&nbsp;
....
&nbsp;
&lt;/s:MobileApplication&gt;</pre></div></div>

<p>MobileApplication wurde umbenannt in</p>

<div class="wp_syntax"><div class="code"><pre class="as" style="font-family:monospace;">&nbsp;
&lt;s:ViewNavigatorApplication&gt;
&nbsp;
....
&nbsp;
&lt;/s:ViewNavigatorApplication&gt;</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://typo3lovesflash.der-gestalt.de/flash-builder-4-5-mobile-development-mobileapplication-zu-viewnavigatorapplication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Air for Mobile &#8211; Flex 4.5 &#8211; ViewOrientation vorgeben</title>
		<link>http://typo3lovesflash.der-gestalt.de/adobe-air-for-mobile-flex-4-5-vieworientation-vorgeben/</link>
		<comments>http://typo3lovesflash.der-gestalt.de/adobe-air-for-mobile-flex-4-5-vieworientation-vorgeben/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 17:55:47 +0000</pubDate>
		<dc:creator>Maximilian</dc:creator>
				<category><![CDATA[Bachelorarbeit]]></category>

		<guid isPermaLink="false">http://typo3lovesflash.der-gestalt.de/?p=100</guid>
		<description><![CDATA[Um die Orientation eurer View vorzugeben, bedarf es eigentlich nur einiger kurzer Anweisungen in der app-XML und im Programmcode. Allerdings sind diese Anweisungen nicht oder nur sehr schlecht dokumentiert. Deshalb ein kurzer Überblick:
autoOrientation aus
Sucht in der app-Xml die Zeile

&#60;autoOrients&#62;true&#60;/autoOrients&#62;

und setzt diese auf false.

&#60;autoOrients&#62;false&#60;/autoOrients&#62;

Diese Anweisung sorgt dafür, dass sich die Applikation nicht mehr am Beschleunigungssensor orientiert [...]]]></description>
			<content:encoded><![CDATA[<p>Um die Orientation eurer View vorzugeben, bedarf es eigentlich nur einiger kurzer Anweisungen in der app-XML und im Programmcode. Allerdings sind diese Anweisungen nicht oder nur sehr schlecht dokumentiert. Deshalb ein kurzer Überblick:</p>
<h2>autoOrientation aus</h2>
<p>Sucht in der app-Xml die Zeile</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;autoOrients<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/autoOrients<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>und setzt diese auf false.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;autoOrients<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/autoOrients<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Diese Anweisung sorgt dafür, dass sich die Applikation nicht mehr am Beschleunigungssensor orientiert und die erste View eurer App wird nach den Einstellungen in der Zeile</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;aspectRatio<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>landscape<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/aspectRatio<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p> ausgerichtet.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;aspectRatio<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>landscape<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/aspectRatio<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p> steht, falls diese Zeile bei euch nicht vorhanden sein sollte, zwischen</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;initialWindow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
...
...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;aspectRatio<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>landscape<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/aspectRatio<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/initialWindow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h2>Manuelle Steuerung der Orientierung</h2>
<p>Um nun der View manuell die Orientierung zu übergeben, sprecht ihr das viewActivate-Ereignis in eurer View an. Dies macht ihr in der View-Deklaration euere View-MXML. Dort platziert ihr eine Funktion, um das Ereignis abzufangen.</p>

<div class="wp_syntax"><div class="code"><pre class="as" style="font-family:monospace;">&lt;s:View xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot; 
		xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot; title=&quot;Your title&quot; viewActivate=&quot;onActive(event)&quot;&gt;</pre></div></div>

<p>Innerhalb dieser Funktion könnt ihr nun die Orientierung vorgeben.</p>

<div class="wp_syntax"><div class="code"><pre class="as" style="font-family:monospace;">public function onActive(e:Event):void 
{
stage.setAspectRatio(StageAspectRatio.PORTRAIT);
}</pre></div></div>

<p>Hier könnt ihr entweder <strong>StageAspectRatio.PORTRAIT</strong> oder <strong>StageAspectRatio.LANDSCAPE</strong> nutzen. Dies ist der Weg, der nicht zu einer deprecated Warnung im Compiler führt und deshalb wohl der vernünftigere Weg. Den anderen Weg findet ihr hier <a href="http://cookbooks.adobe.com/post_Auto_orient_your_mobile_application_to_the_device-18224.html">http://cookbooks.adobe.com/post_Auto_orient_your_mobile_application_to_the_device-18224.html</a>. </p>
<p>Ich hoffe, dass spart euch ein wenig Zeit.</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3lovesflash.der-gestalt.de/adobe-air-for-mobile-flex-4-5-vieworientation-vorgeben/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Flash Builder 4.5: Die versteckte API</title>
		<link>http://typo3lovesflash.der-gestalt.de/adobe-flash-builder-4-die-versteckte-api/</link>
		<comments>http://typo3lovesflash.der-gestalt.de/adobe-flash-builder-4-die-versteckte-api/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 17:27:10 +0000</pubDate>
		<dc:creator>Maximilian</dc:creator>
				<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Flash Builder Burrito]]></category>

		<guid isPermaLink="false">http://typo3lovesflash.der-gestalt.de/?p=96</guid>
		<description><![CDATA[Nachdem ich in letzer Zeit sehr viel AIR für Mobile Devices mit dem Flash Builder 4.5 (Burrito) programmiert habe, kam ich immer mit den API Dokumentationen von Action Script 3 durcheinander, da diese Version noch Beta ist. Deshalb der Link zur aktuellen Beta AS 3 API:
http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/package-detail.html
Vielleicht ist der Link für den einen oder anderen ja [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich in letzer Zeit sehr viel AIR für Mobile Devices mit dem Flash Builder 4.5 (Burrito) programmiert habe, kam ich immer mit den API Dokumentationen von Action Script 3 durcheinander, da diese Version <em>noch</em> Beta ist. Deshalb der Link zur aktuellen Beta AS 3 API:</p>
<p><a href="http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/package-detail.html" target="_blank">http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/package-detail.html</a></p>
<p>Vielleicht ist der Link für den einen oder anderen ja nützlich.</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3lovesflash.der-gestalt.de/adobe-flash-builder-4-die-versteckte-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thank God &#8211; I&#8217;m a webdeveloper</title>
		<link>http://typo3lovesflash.der-gestalt.de/thank-god-im-a-webdeveloper/</link>
		<comments>http://typo3lovesflash.der-gestalt.de/thank-god-im-a-webdeveloper/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 11:39:37 +0000</pubDate>
		<dc:creator>Maximilian</dc:creator>
				<category><![CDATA[Bachelorarbeit]]></category>

		<guid isPermaLink="false">http://typo3lovesflash.der-gestalt.de/?p=89</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.landingpages.co.il/wix/web-designers-vs-developers.png"><img class="alignnone" title="Webdeveloper vs. Webworker" src="http://www.landingpages.co.il/wix/web-designers-vs-developers.png" alt="" width="720" height="1120" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://typo3lovesflash.der-gestalt.de/thank-god-im-a-webdeveloper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usability im TYPO3-Agenturalltag &#8211; Frontend ja, aber im Backend?</title>
		<link>http://typo3lovesflash.der-gestalt.de/useability-typo3-agenturalltag-vergleich-frontend-backend/</link>
		<comments>http://typo3lovesflash.der-gestalt.de/useability-typo3-agenturalltag-vergleich-frontend-backend/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 23:14:39 +0000</pubDate>
		<dc:creator>Maximilian</dc:creator>
				<category><![CDATA[Konzeption]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://typo3lovesflash.der-gestalt.de/?p=83</guid>
		<description><![CDATA[Nach einer zugebenermaßen längeren Pause, drei Monaten ohne Rechner, viel Arbeit habe ich wieder Zeit mich einem Thema zu widmen, das mich schon länger interessiert und tatsächlich nun über die Anfangsintention des Blogs hinausgeht: Usability im TYPO3-Agenturalltag. Wer arbeitet damit? Kämpft Ihr euch als Designer, Coder oder Konzeptioner schon bei jeder Kundenwebsite durch mehrere Seiten [...]]]></description>
			<content:encoded><![CDATA[<p>Nach einer zugebenermaßen längeren Pause, drei Monaten ohne Rechner, viel Arbeit habe ich wieder Zeit mich einem Thema zu widmen, das mich schon länger interessiert und tatsächlich nun über die Anfangsintention des Blogs hinausgeht: <strong>Usability im TYPO3-Agenturalltag</strong>. Wer arbeitet damit? Kämpft Ihr euch als Designer, Coder oder Konzeptioner schon bei jeder Kundenwebsite durch mehrere Seiten Verbesserungen von Usability-Experten? Und wenn ja, wie geht es dem Redakteur dabei?</p>
<h3>Usability? Kenn ich.</h3>
<p>Benutzerfreundlichkeit als Dienste am Nutzer ist nunmehr nichts mehr Neues. Nachdem <a href="http://www.amazon.com/Think-Common-Sense-Approach-Usability/dp/0789723107">2002 Steve Krug mit &#8220;Don&#8217;t make me think&#8221;</a> schon mal einen Denkanstoß für Website Konzeptioner gegeben hatte, ist Benutzerfreundlichkeit von Websites wohl das Schlagwort seit 2008.<br />
Firmen und Agenturen, die es sich leisten können, bringen ihre Webseiten und/oder mobile Applikation zu Usability-Agenturem und lassen testen, ob der DAU auch verstanden hat, was er zu tun hat. Dies ist zunächste auch nichts schlechtes und der gewünschte Erfolg (mehr Umsatz, Registrierungen, Kundenbindung, Gewinn, Stärkung der Marke etc.) stellt sich meist tatsächlich ein. Ganz nach Krug: &#8220;Wenn es einfach zu benutzen ist, benutze ich es auch öfter&#8221;.</p>
<h3>Benutzerfreundlichkeit beginnt im Backend</h3>
<p>Doch ist es auch erfolgsentscheidend für die Website, ob die Pflegearbeit im Backend, die der Redakteur oder der Kunde selbst betreibt, einfach zu handhaben sind? Auch hier nach Krug: &#8220;Wenn es mir Spaß bereitet, meine Website aktuell und mit den neusten Angeboten zu versehen, steigert das auch die Usability der Seite?&#8221; Gerade bei großen TYPO3-Projekten, die sehr viele Plugins und Extensions benötigen, sind Kunden und Redakteure meist vom benutzerunfreundlichen Interface von TYPO3 überfordert und frustriert. Wem ist nicht schon bei perfekt konzipierten Frontends, die der Kunde liebt, das Schnaufen während der TYPO3-Schulung das überforderte Schnaufen untergekommen. Dass dies nichts Neues ist, dürfte jedem, der mit TYPO3 täglich zu tun hat, bekannt sein.</p>
<h3>Plugin Konzeption einmal überdacht</h3>
<p>Aufgrund der Struktur von TYPO3 ist es kaum möglich als Freelancer oder Agentur allen selbst geschriebenen Extensions ein zur Aufgabe passendes, Usability-optimiertes Interface zu verpassen. Insbesondere das Eintragen von Datensätzen im List-Modul ist kaum ohne mehrere Manntage Aufwand in ein neues Gewand zu pressen und das ist dann auch nicht der Sinn bei einem Open Source CMS wie TYPO3.<br />
Eine Lösung wäre aber schon bei der Konzeption von dynamischen Frontendinhalten, die Logik der Inhalte auch im Backendplugin abzubilden. Eine Feld zeigt sich im Frontend nicht, wenn es nicht gebraucht wird? Dann ist es auch nutzlos im Backend. Warum den Redakteur mit leeren Feldern überfordern?<br />
Die Vorteile liegen auf der Hand</p>
<ul>
<li>Schnellere, effizientere Arbeit des Redakteurs</li>
<li>Weniger Fehler durch logisches Führen des Redakteurs durch den Einpflegeprozess</li>
<li>Motivierter Mitarbeiter</li>
<li>Konzentration auf den Inhalt, nicht auf den Prozess</li>
<li>Zufriedenere Kunden</li>
<li>Weniger Supportanfragen</li>
</ul>
<p>Realisiert werden kann dies zum Beispiel durch den Einsatz von JavaScript im Backend von TYPO3. Dem Backend von TYPO3 kann über TSConfig JavaScript hinzugefügt werden, das das Ein- oder Ausblenden von Feldern, Abbilden von Logiken des Frontends oder Benutzerunterstützung abbilden kann. In Backendmodulen ist das Einbinden von JS dankbar einfach, da es innerhalb eines <code>&lt;script&gt;</code>-Tags in der index.php des Backendmoduls eingefügt werden kann.</p>
<h3>Frontendprinzipien für das Backend</h3>
<p>Nur weil der normale Websiteuser das Backend so gut wie nie zu sehen bekommt, heißt das nicht, dass der Benutzer nicht von einem durch Usability motiviertem Redakteur profitieren kann. Alleine dadurch, dass Fehler beim Einpflegen vermieden werden, entsteht dem Nutzer schon ein Mehrwert. Wird Benutzerfreundlichkeit im Frontend zur Zeit entweder vernachlässigt oder überwertet, so kann das Einführen von einigen Usability-Prinzipien im Backend die Kundenzufriedenheit stark erhöhen.<br />
Der erhöhte Aufwand beim Schreiben des JavaScripts oder CSS für das Backend ist sehr schnell durch verringerte Supportzeit beim Kunden verargumentiert und die Dankbarkeit von z.B Shop- oder Newsredakteuren ist der Agentur oder dem Freelancer sicher.</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3lovesflash.der-gestalt.de/useability-typo3-agenturalltag-vergleich-frontend-backend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TYPO3 lib/div: Flexform-Konfiguration nach TypoScript</title>
		<link>http://typo3lovesflash.der-gestalt.de/typo3-lib-div-flexform-konfiguration-typoscript/</link>
		<comments>http://typo3lovesflash.der-gestalt.de/typo3-lib-div-flexform-konfiguration-typoscript/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 10:40:44 +0000</pubDate>
		<dc:creator>Maximilian</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[lib/div]]></category>

		<guid isPermaLink="false">http://typo3lovesflash.der-gestalt.de/?p=76</guid>
		<description><![CDATA[Ein nerviger Bug, gerade für diejenigen, die gerade mit dem lib/div-Framework starten wollen, ist, dass das Framework bei der Auswertung der Konfiguration immer auf die Daten der FlexForm zurückgreift. Dies erscheint im ersten Augenblick auch sinnvoll &#8211; allerdings nicht mehr, wenn sich im entspechenden Feld kein Inhalt befindet.
Folgender Ausgangspunkt sei gegeben:
Man möchte dem Nutzer die [...]]]></description>
			<content:encoded><![CDATA[<p>Ein nerviger Bug, gerade für diejenigen, die gerade mit dem lib/div-Framework starten wollen, ist, dass das Framework bei der Auswertung der Konfiguration immer auf die Daten der FlexForm zurückgreift. Dies erscheint im ersten Augenblick auch sinnvoll &#8211; allerdings nicht mehr, wenn sich im entspechenden Feld kein Inhalt befindet.</p>
<p><strong>Folgender Ausgangspunkt sei gegeben:</strong></p>
<p>Man möchte dem Nutzer die Möglichkeit geben, dass er bestimmte Einstellungen sowohl im TypoScript als auch im FlexForm-Formular machen kann. Zum Beispiel die Eingabe einer Breite. Dies würde für die flexform-XML ungefähr diesen Code bedeuten:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span> <span style="color: #000066;">standalone</span>=<span style="color: #ff0000;">&quot;yes&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;T3DataStructure<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;meta<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;langDisable<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/langDisable<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/meta<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sheets<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configurationsSheet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ROOT<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TCEforms<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
					<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sheetTitle<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>LLL:EXT:my_extension/locallang_db.xml:configSheet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sheetTitle<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TCEforms<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>array<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;el<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;width<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
						<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TCEforms<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
							<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>LLL:EXT:my_extension/locallang_db.xml:tx_my_extension_fedata.width<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
							<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
								<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>text<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
								<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;cols<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>30<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/cols<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
								<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;rows<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/rows<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
							<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
						<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TCEforms<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
					<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/width<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/el<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ROOT<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/configurationsSheet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sheets<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/T3DataStructure<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Befindet sich in der setup.txt-Datei ebenfalls eine Konfigurationseigenschaft mit dem Namen width, so würde dieser Wert durch das lib/div-Framework immer überschrieben werden &#8211; selbst dann, wenn in der Flexform, das Feld leer gelassen würde.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">plugin.tx_my_extension.configuration {
width = 800
}</pre></div></div>

<p>Um dieses Verhalten zu umgehen muss die Funktion</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setFlexFormConfiguration<span style="color: #009900;">&#40;</span><span style="color: #000088;">$xmlOrArray</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p> überschrieben werden.<br />
Für die Extension benötigt ihr demnach eine Configurations-Klasse, die von tx_lib_configurations erbt. Dies kann so aussehen:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">tx_div<span style="color: #339933;">::</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'tx_lib_configurations'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> tx_my_extension_configurations <span style="color: #000000; font-weight: bold;">extends</span> tx_lib_configurations <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$setupPath</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'plugin.tx_my_extension_configurations.'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>In der default-Controller-Klasse muss eure Configurations-Klasse natürlich angegeben sein.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> tx_my_extension_controller_default <span style="color: #000000; font-weight: bold;">extends</span> tx_lib_controller <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$extKey</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;my_extension&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000088;">$configurationsClassName</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'tx_my_extension_configurations'</span><span style="color: #339933;">;</span></pre></div></div>

<p>Im nächsten Schritt ist die bereits oben erwähnte Funktion setFlexFormConfiguration mit foldendem Code zu überschreiben.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setFlexFormConfiguration<span style="color: #009900;">&#40;</span><span style="color: #000088;">$xmlOrArray</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$languagePointer</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'lDEF'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// we don't support languages here for now</span>
		<span style="color: #000088;">$valuePointer</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'vDEF'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// also hardcoded here</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$xmlOrArray</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #666666; font-style: italic;">// Converting flexform data into array if neccessary</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$xmlOrArray</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xmlOrArray</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> t3lib_div<span style="color: #339933;">::</span><span style="color: #004000;">xml2array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$xmlOrArray</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">//</span>
		<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$data</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$sheet</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$languages</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$languages</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$languagePointer</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$def</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #666666; font-style: italic;">// just use ff value if something was entered</span>
                <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$def</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$valuePointer</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #000088;">$def</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$valuePointer</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
        	<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Bis auf</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"> <span style="color: #666666; font-style: italic;">// just use flexform value if it's not empty</span>
                <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$def</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$valuePointer</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #000088;">$def</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$valuePointer</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span></pre></div></div>

<p>ist die Funktion aus der Super-Klasse tx_lib_configurations kopiert worden. Durch den obigen Code wird der FlexForm-Wert nur genommen, wenn auch etwas eingetragen wurde. Diese Logik erscheint mir sinnvoller als das Vorgehen des Frameworks vor der Korrektur.<br />
Zu guter Letzt tragt ihr die überschriebene Funktion in euere Configurations-Klasse ein, so dass diese nun so aussehen sollte.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> tx_my_extension_configurations <span style="color: #000000; font-weight: bold;">extends</span> tx_lib_configurations <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$setupPath</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'plugin.tx_my_extension_configurations.'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setFlexFormConfiguration<span style="color: #009900;">&#40;</span><span style="color: #000088;">$xmlOrArray</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$languagePointer</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'lDEF'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// we don't support languages here for now</span>
		<span style="color: #000088;">$valuePointer</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'vDEF'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// also hardcoded here</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$xmlOrArray</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #666666; font-style: italic;">// Converting flexform data into array if neccessary</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$xmlOrArray</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xmlOrArray</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> t3lib_div<span style="color: #339933;">::</span><span style="color: #004000;">xml2array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$xmlOrArray</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">//</span>
		<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$data</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$sheet</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$languages</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$languages</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$languagePointer</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$def</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #666666; font-style: italic;">// just use ff value if something was entered</span>
                <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$def</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$valuePointer</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #000088;">$def</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$valuePointer</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
        	<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://typo3lovesflash.der-gestalt.de/typo3-lib-div-flexform-konfiguration-typoscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Flash 2 TYPO3&#8243; (mwflash2t3) fertig gestellt</title>
		<link>http://typo3lovesflash.der-gestalt.de/flash-2-typo3-mwflash2t3-fertig-gestellt/</link>
		<comments>http://typo3lovesflash.der-gestalt.de/flash-2-typo3-mwflash2t3-fertig-gestellt/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 13:30:46 +0000</pubDate>
		<dc:creator>Maximilian</dc:creator>
				<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Bachelorarbeit]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3lovesflash.der-gestalt.de/?p=69</guid>
		<description><![CDATA[Die Extension &#8220;Flash 2 TYPO3&#8243; ist fertig!
Lange Zeit hat es keinen Post gegeben, da ich neben der Programmierung auch noch den schriftlichen Teil der Arbeit schreiben musste. Jetzt kann ich aber doch ein wenig Stolz verkünden, dass die Extension im Alpha-Status ist und produktiv eingesetzt wird.
Kurz zu den Randdaten:
Die Extension sorgt mit Hilfe von Flexiblen [...]]]></description>
			<content:encoded><![CDATA[<p>Die Extension &#8220;Flash 2 TYPO3&#8243; ist fertig!<br />
Lange Zeit hat es keinen Post gegeben, da ich neben der Programmierung auch noch den schriftlichen Teil der Arbeit schreiben musste. Jetzt kann ich aber doch ein wenig Stolz verkünden, dass die Extension im Alpha-Status ist und produktiv eingesetzt wird.<br />
Kurz zu den Randdaten:<br />
Die Extension sorgt mit Hilfe von Flexiblen Content Elementen von TYPO3 dafür, dass ihr eure gemappte XML mit den Daten der gewählten FCE&#8217;s neu generiert bekommt. Das heißt in der Schlussfolgerung, dass ihr mit Hilfe der Extension &#8220;Flash 2 TYPO3&#8243; (mwflash2t3) eure Flash-Module und/oder Flash-Seiten verwalten könnt.</p>
<p>Zu finden ist die Extension im Repository unter <a href="http://typo3.org/extensions/repository/view/mwflash2t3/current/">http://typo3.org/extensions/repository/view/mwflash2t3/current/</a>. Die Dokumentation enthält ein Schritt-für-Schritt-Tutorial, um die Funktionsweise nachzuvollziehen. Darüber hinaus ist die Extension sehr flexibel aufgebaut und kann sowohl per Flexform als auch per TypoScript konfiguriert werden.<br />
Sie basiert im Fronten-Plugin auf lib/div und wird so hoffentlich gut in die nächsten Generationen von TYPO3 integrierbar sein.<br />
Ein Beispiel bietet die Website <a href="http://typo3fl.webseiten.cc/">http://typo3fl.webseiten.cc/</a>. Sie ist eine Full-Flash-Site und wird über meine Extension und TYPO3 verwaltet. </p>
<p>Für Fragen und Antworten zur Extension steht die Kommentarfunktion zu Verfügung. Ich würde mich über Verbesserungen, gewünschte Features in der nächsten Version, Lob, Kritik und vieles mehr freuen. Ich denke, mit dieser Extension ist ein Anfang für die Zusammenarbeit und die Verwaltung von TYPO3 und Flash getan.</p>
<p>Hier findet ihr die Dokumenation als PDF. Mir vielen Screenshots und Tutorial. <a href='http://typo3lovesflash.der-gestalt.de/flash-2-typo3-mwflash2t3-fertig-gestellt/mwflash2t3_dokumenation/' rel='attachment wp-att-70'>mwflash2t3-Dokumentation</a></p>
<p>Wenn ich die Programmierung aufgearbeitet habe, werde ich einige kleine Tutorials zur Extension-Programmierung hier bereit stellen. Bis dahin&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3lovesflash.der-gestalt.de/flash-2-typo3-mwflash2t3-fertig-gestellt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aufbau der Extension mwflash2t3</title>
		<link>http://typo3lovesflash.der-gestalt.de/extension-mwflash2t3/</link>
		<comments>http://typo3lovesflash.der-gestalt.de/extension-mwflash2t3/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 23:34:24 +0000</pubDate>
		<dc:creator>Maximilian</dc:creator>
				<category><![CDATA[Bachelorarbeit]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3lovesflash.der-gestalt.de/?p=50</guid>
		<description><![CDATA[Wer sich meine PureMVC Site schon angesehen hat, wird den Namen der Extension bereits kennen. Ich habe ihr den Extension-Key mwflash2t3 gegeben. Im Repository ist sie noch nicht, da sie außer den Grunddateien noch nicht viel Funktion enthält. Ich hoffe, dass sich das diese Woche noch ändert.
Den groben Aufbau will ich euch aber nicht vorenthalten.
Die [...]]]></description>
			<content:encoded><![CDATA[<p>Wer sich meine PureMVC Site schon angesehen hat, wird den Namen der Extension bereits kennen. Ich habe ihr den Extension-Key mwflash2t3 gegeben. Im Repository ist sie noch nicht, da sie außer den Grunddateien noch nicht viel Funktion enthält. Ich hoffe, dass sich das diese Woche noch ändert.<br />
Den groben Aufbau will ich euch aber nicht vorenthalten.</p>
<p>Die Extension wird in Frontend- und Backendfunktionen aufgeteilt. Im Frontend kann man die Extension sowohl als neuen Pagetype als auch als Plugin einfügen. Der neue Pagetype ist für komplette Flashsites gedacht. Das Plugin für ein einzelnes Flashmodul auf der Website. Das Frontendplugin wird zukuftsgerecht mit den lib/div Extension programmiert. Ich verspreche mir davon, dass es später für mich einfacher wird auf TYPO3 v5 zu switchen.<br />
Das Backendmodul versteckt sich dann unter WEB im TYPO3-Backend. Hier wählt der Nutzer seine XML aus und mappt nach TemplaVoilà-Art. Ich hoffe, dass ich es zeitlich schaffe, dass die XML, ohne vorherige Eingabe der Node-Namen durch den User gemappt werden kann.<br />
Beim Datenbankaufbau habe ich mich an TemplaVoila orientiert. Auch ich werde mit der Trennung zwischen Templateobject und Datastructure arbeiten. Da bei mir aber sowohl Frontend wie Backend Zugriff auf die XML brauchen, gibt es bei mir eine eigene Tabelle für die XML. Auch für die Daten aus der Flexform des Plugins stelle ich eine eigene Tabelle zur Verfügung.</p>
<p>Schade ist, dass TemplaVoilà das Mappen von XML nicht unterstützt. Interessant ist aber, dass dies anscheinend einmal angedacht war. In der Datei class.tx_templavoila_htmlmarkup.php befindet sich die Funktion setTagsFromXML ( $content )</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #009933; font-style: italic;">/**
	 * The idea is to parse the XML in $contnet and set the internal TAG array with all these tags so they can be mapped...
	 * NOT WORKING YET - experiment.
	 *
	 * @param	[type]		$content: ...
	 * @return	[type]		...
	 */</span>
	<span style="color: #000000; font-weight: bold;">function</span> setTagsFromXML<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span>	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$parser</span> <span style="color: #339933;">=</span> <span style="color: #990000;">xml_parser_create</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$vals</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$index</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #990000;">xml_parser_set_option</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parser</span><span style="color: #339933;">,</span> XML_OPTION_CASE_FOLDING<span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">xml_parser_set_option</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parser</span><span style="color: #339933;">,</span> XML_OPTION_SKIP_WHITE<span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">xml_parse_into_struct</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parser</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span><span style="color: #339933;">,</span> <span style="color: #000088;">$vals</span><span style="color: #339933;">,</span> <span style="color: #000088;">$index</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">xml_get_error_code</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parser</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>	<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'Line '</span><span style="color: #339933;">.</span><span style="color: #990000;">xml_get_current_line_number</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parser</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">': '</span><span style="color: #339933;">.</span><span style="color: #990000;">xml_error_string</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">xml_get_error_code</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parser</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">xml_parser_free</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parser</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tags</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$index</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$index</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$idx</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span>	<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tags</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$idx</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #990000;">print_r</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tags</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">textGnyf</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Allerdings wird diese Funktion nie benutzt und ist sogar in der index.php des cm1-Ordners der Extension in der Funktion</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> displayFileContentWithMarkup<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #339933;">,</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span><span style="color: #000088;">$relPathFix</span><span style="color: #339933;">,</span><span style="color: #000088;">$limitTags</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p> eingebaut, aber auskommentiert.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
	 * This will mark up the part of the HTML file which is pointed to by $path
	 *
	 * @param	string		The file content as a string
	 * @param	string		The &quot;HTML-path&quot; to split by
	 * @param	string		The rel-path string to fix images/links with.
	 * @param	string		List of tags to show
	 * @return	void		Exits...
	 * @see main_display()
	 */</span>
	<span style="color: #000000; font-weight: bold;">function</span> displayFileContentWithMarkup<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #339933;">,</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span><span style="color: #000088;">$relPathFix</span><span style="color: #339933;">,</span><span style="color: #000088;">$limitTags</span><span style="color: #009900;">&#41;</span>	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$markupObj</span> <span style="color: #339933;">=</span> t3lib_div<span style="color: #339933;">::</span><span style="color: #004000;">makeInstance</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'tx_templavoila_htmlmarkup'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$markupObj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">gnyfImgAdd</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">show</span> ? <span style="color: #0000ff;">''</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">'onclick=&quot;return parent.updPath(\'###PATH###\');&quot;'</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$markupObj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">pathPrefix</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$path</span>?<span style="color: #000088;">$path</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|'</span><span style="color: #339933;">:</span><span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$markupObj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">onlyElements</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$limitTags</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// $markupObj-&gt;setTagsFromXML($content);</span>
&nbsp;
		<span style="color: #000088;">$cParts</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$markupObj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">splitByPath</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #339933;">,</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cParts</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>	<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$cParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$markupObj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">markupHTMLcontent</span><span style="color: #009900;">&#40;</span>
							<span style="color: #000088;">$cParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
							<span style="color: #000088;">$GLOBALS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'BACK_PATH'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
							<span style="color: #000088;">$relPathFix</span><span style="color: #339933;">,</span>
							<span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">','</span><span style="color: #339933;">,</span><span style="color: #990000;">array_keys</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$markupObj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tags</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
							<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">MOD_SETTINGS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'displayMode'</span><span style="color: #009900;">&#93;</span>
						<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$cParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$markupObj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">passthroughHTMLcontent</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #000088;">$relPathFix</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">MOD_SETTINGS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'displayMode'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$cParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$markupObj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">passthroughHTMLcontent</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #000088;">$relPathFix</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">MOD_SETTINGS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'displayMode'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>	<span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$cParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'&lt;a name=&quot;_MARKED_UP_ELEMENT&quot;&gt;&lt;/a&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$cParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$cParts</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">displayFrameError</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cParts</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Leider, leider, leider bietet TemplaVoilà hier keinen Hook an, weshalb ich keinen Weg sehe, die Funktionalität, die ich benötigen würde, auf vernünftige Weise einzubauen. Per XCLASS zu erweitern, erscheint mir nicht sonderlich sinnvoll.</p>
<p>Was ich allerdings an dem neuen Ansatz lib/div noch nicht sehe, ist die Möglichkeit für das Backend mit dem MVC-Model zu programmieren. Es scheint ein Feature nur für Frontend-Plugins zu sein. Falls ich mich hier irre, lasse ich mich gerne berichtigen. Aber ich denke, dass mir für das Backendmodul nur der Weg über den Aufbau index.php + weitere Aspektorientierte Klassen gehen kann.</p>
<p>Anregungen, Tipps oder Kritik gerne hier posten.</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3lovesflash.der-gestalt.de/extension-mwflash2t3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PureMVC Website mit Download</title>
		<link>http://typo3lovesflash.der-gestalt.de/puremvc-website-download-free/</link>
		<comments>http://typo3lovesflash.der-gestalt.de/puremvc-website-download-free/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 22:41:15 +0000</pubDate>
		<dc:creator>Maximilian</dc:creator>
				<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Bachelorarbeit]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false">http://typo3lovesflash.der-gestalt.de/?p=44</guid>
		<description><![CDATA[
Nach langer Zeit ohne Post, melde ich mich mit der Nachricht &#8220;PureMVC Website ist fertig&#8221; zurück. Ich habe mich eingearbeitet und muss sagen, dass ich mit der Arbeit mit PureMVC sehr zufrieden bin. Das Framework ist klasse und während ich an dem Frontend für die Beispielwebsite meiner Bachelorarbeit gearbeitet habe, ist mir schon das eine [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://typo3lovesflash.der-gestalt.de/puremvc-website-download-free/design/" rel="attachment wp-att-62"><img src="http://typo3lovesflash.der-gestalt.de/wp-content/uploads/2010/01/design-300x225.jpg" alt="Design des Flash Frontends" title="Design des Flash Frontends" width="300" height="225" class="alignnone size-medium wp-image-62" /></a><br />
Nach langer Zeit ohne Post, melde ich mich mit der Nachricht &#8220;PureMVC Website ist fertig&#8221; zurück. Ich habe mich eingearbeitet und muss sagen, dass ich mit der Arbeit mit PureMVC sehr zufrieden bin. Das Framework ist klasse und während ich an dem Frontend für die Beispielwebsite meiner Bachelorarbeit gearbeitet habe, ist mir schon das eine oder andere Mal der Gedanke gekommen: &#8220;Warum keine Arbeit über PureMVC?&#8221; Aber sei&#8217;s drum.<br />
Ihr findet die kompletten Quellcode, die FLA und die XML am Ende des Posts. Der Quellcode ist leider kaum dokumentiert und das ganze Projekt ist noch nicht gesäubert. Darum kümmere ich mich, wenn ich mit der Extension-Programmierung fertig bin, also verzeiht bitte den einen oder anderen Schönheitsfehler. Falls erfahrenere PureMVC Programmierer unter meinen Lesern sind und noch den einen oder anderen Tipp an mich haben: Immer her damit. Da es mein erstes Projekt war, kann man mit mehr Erfahrung bestimmt das ein oder andere besser machen.<br />
Wem das Projekt gefällt es gerne für seinen eigenen Zwecke benutzen und abändern. Über ein kleines Danke freue ich mich dann aber doch.</p>
<p>Als Debugger habe ich <a href="http://arthropod.stopp.se/">Arthropod</a> von Carl Calderon benutzt. Auf diesen bin ich irgendwann gestoßen und er hat mich bisher nicht entäuscht. Ich glaube zwar, dass der Debugger nicht mehr sonderlich stark weiterentwickelt wird, aber da er auf Adobe Air basiert ist er einfach universal einsetzbar.<br />
Ich habe die Debugger-Klasse jetzt nicht entfernt und es sind glaube ich auch noch ein paar Debug-Aufrufe im Quellcode. Wen das stört, kann sie gerne rausschmeißen.</p>
<p>Wenn ich Zeit finde, werde ich auch gerne mal ein Tutorial über den Aufbau des Flashmoduls schreiben. Ich habe mich unter folgenden Adressen schlau gemacht:</p>
<ul>
<li><a href="http://puremvc.org/">http://puremvc.org/</a></li>
<li><a href="http://hubflanger.com/building-a-flash-site-using-puremvc/">http://hubflanger.com/building-a-flash-site-using-puremvc/</a></li>
<li><a href="http://www.flexughh.de/downloads/meetings/280308/">http://www.flexughh.de/downloads/meetings/280308/</a></li>
</ul>
<p>Die XML site.xml enthält die Daten für die Website. Da ich den Content ja dann in TYPO3 einfüllen werde, ist das Ganze natürlich eher als Template gehalten. Aber ich denke die Strukur erklärt sich von selbst, da das ganze Frontend ja nur ein Beispiel für die Funktionsweise der Extension sein soll.</p>
<p>Bugs, Vorschläge oder Ähnliches einfach als Kommentar unter den Post.</p>
<p><a href='http://typo3lovesflash.der-gestalt.de/puremvc-website-download-free/t3lovesflash/' rel='attachment wp-att-64'>T3lovesFlash</a></p>
]]></content:encoded>
			<wfw:commentRss>http://typo3lovesflash.der-gestalt.de/puremvc-website-download-free/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash und die Textfelder</title>
		<link>http://typo3lovesflash.der-gestalt.de/flash-textfelder-as3-bug/</link>
		<comments>http://typo3lovesflash.der-gestalt.de/flash-textfelder-as3-bug/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 12:04:37 +0000</pubDate>
		<dc:creator>Maximilian</dc:creator>
				<category><![CDATA[Adobe Flash]]></category>

		<guid isPermaLink="false">http://typo3lovesflash.der-gestalt.de/?p=34</guid>
		<description><![CDATA[Da ich ja zur Zeit hauptsächlich im AS 3 und Flash Universum unterwegs bin, bin ich auf ein paar Bugs (Eigenarten, Features..) von Flash gestoßen, die mir so circa zwei Stunden zusätzliche Arbeit gekostet haben. Es kann sein, dass der eine oder andere Flash-Crack sich müde lächelnd abwendet, aber ich bin im Laufe meiner Programmierzeit [...]]]></description>
			<content:encoded><![CDATA[<p>Da ich ja zur Zeit hauptsächlich im AS 3 und Flash Universum unterwegs bin, bin ich auf ein paar Bugs (Eigenarten, Features..) von Flash gestoßen, die mir so circa zwei Stunden zusätzliche Arbeit gekostet haben. Es kann sein, dass der eine oder andere Flash-Crack sich müde lächelnd abwendet, aber ich bin im Laufe meiner Programmierzeit immer wieder über Eigenarten von Flash im Umgang mit Textfeldern respektive der TextField-Klasse gestolpert.</p>
<p>Über ein paar möchte ich hier Auskunft geben, um vielleicht dem einem oder anderen bei der Fehlersuche behilflich zu sein.</p>
<h2>Fehler: Es wird kein Text angezeigt</h2>
<h3>Einbetten von Schriften</h3>
<p>Denkt daran eure Schriften einzubetten. Wenn ihr dynamisch Textfelder zur Bühne hinzufügt, müssen alle Zeichen eures Zeichensatzes, die ihr benutzen wollt, eingebettet sein. Das macht ihr über den Einbetten-Button, nachdem ihr das dynamische Textfeld auf der Bühne selektiert habt.</p>
<p><a href="http://typo3lovesflash.der-gestalt.de/wp-content/uploads/2010/01/einbetten.jpg"><img class="alignnone size-full wp-image-35" title="einbetten" src="http://typo3lovesflash.der-gestalt.de/wp-content/uploads/2010/01/einbetten.jpg" alt="einbetten" width="606" height="97" /></a></p>
<p>Im auftauchenden Fenster wählt ihr die Zeichen aus, die ihr benötigen werdet. Vergesst nicht die deutschen Umlaute einzubauen (natürlich nur, wenn es eine deutsche Seite ist). Die sind nämlich in Flashs Auswahl für Groß- und Kleinbuchstaben nicht vorhanden. Ist dann in eurem Text, den ihr dynamisch hinzufügt, ein Umlaut vorhanden, zeigt Flash euren Text nicht an.</p>
<p><a href="http://typo3lovesflash.der-gestalt.de/wp-content/uploads/2010/01/einbetten2.jpg"><img class="alignnone size-full wp-image-36" title="einbetten2" src="http://typo3lovesflash.der-gestalt.de/wp-content/uploads/2010/01/einbetten2.jpg" alt="einbetten2" width="391" height="296" /></a></p>
<p>Bei vollkommen dynamisch hinzugefügten Textfeldern müsst mit der Eigenschaft</p>

<div class="wp_syntax"><div class="code"><pre class="as" style="font-family:monospace;">TextField.embedFont = true;</pre></div></div>

<p>das einbetten von Fonts erlauben und mit der TextFormat-Klasse einen Font definieren.</p>

<div class="wp_syntax"><div class="code"><pre class="as" style="font-family:monospace;">TextFormat.font = &quot;Verdana&quot;;</pre></div></div>

<p>Weitere Infos im <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/text/TextFormat.html#font">LiveDoc von Adobe zu dem Thema</a>.</p>
<h2>Fehler: Trotz einbetten der Glyphen, zeigt Flash keinen Text an</h2>
<h3>Mitkompilieren des Zeichensatzes</h3>
<p>Ihr habt eure Glyphen im Textfeld eingebettet, allerdings wird auf einem anderen Computer kein Text eingezeigt. Hier liegt es meistens daran, dass die Schrift, die ihr verwendet nicht auf dem fremden Computer vorhanden ist. Die Einbetten-Funktion bei Flash ist dabei etwas missverständlich gekennzeichnet. Beim Einbetten bettet ihr nicht die Schrift selber ein, sondern sagt dem Textfeld nur, welche Glyphen im Textfeld dargestellt werden sollen. Ist eure Schrift aber nicht auf dem fremden Computer vorhanden, kann den Flash die passenden Buchstaben nicht mehr darstellen. Deshalb ist es wichtig, dass ihr eure Schriftart in der Bibliothek mitkompiliert.</p>
<p>Das macht ihr über das Kontextmenü der Bibliothek. Hier wählt ihr neue Schriftart.</p>
<p><a href="http://typo3lovesflash.der-gestalt.de/wp-content/uploads/2010/01/einbetten3.jpg"><img class="alignnone size-full wp-image-37" title="einbetten3" src="http://typo3lovesflash.der-gestalt.de/wp-content/uploads/2010/01/einbetten3.jpg" alt="einbetten3" width="250" height="300" /></a></p>
<p>Im auftauchenden Dialogfenster legt ihr eure Schrift dann an und speichert sie in die Bibliothek. Wichtig: Für jede Größe und Art eurer Schrift, die ihr in eurem Flash verwendet, also zum Beispiel &#8220;Webdings&#8221;, 16pt und fett und &#8220;Webdings&#8221;, 14pt und normal, müsst ihr eine eigene Schrift anlegen. Es reicht nicht, einmal &#8220;Webdings&#8221; in 16pt in die Bibliothek zu importieren.</p>
<p>Der Nachteil an diesem Verfahren ist natürlich, dass der Flashfilm in der Größe wächst. Deshalb sollte genau überlegt werden, welche Glyphen und Schriftarten wirklich benötigt werden.</p>
<h2>Fehler: Beim dynamischen Einladen von Texten, werden diese verzerrt oder an falscher Position dargestellt</h2>
<h3>Sind TextFieldAutoSize-Konstanten gesetzt und der Parent-MovieClip nicht verzerrt</h3>
<p>Es ist leider unbedingt von Nöten bei dynamischen Textfeldern die Konstanten der TextFieldAutoSize an das Textfeld zu übergeben. ActionScript 3 setzt den Default-Wert für TextField.autoSize auf NONE, weshalb dieser unbedingt im Quellcode übergeben werden muss, da sich sonst die dynamischen Textfelder nicht an die Größe des übergebenen Textes anpasst. Hierfür sind die Konstanten der Klasse TextFieldAutoSize zuständig (<a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/text/TextField.html#autoSize">LiveDoc</a>). Folgende Optionen</p>

<div class="wp_syntax"><div class="code"><pre class="as" style="font-family:monospace;">TextFieldAutoSize.LEFT
TextFieldAutoSize.NONE (default)
TextFieldAutoSize.RIGHT
TextFieldAutoSize.CENTER</pre></div></div>

<p>sind verfügbar. Dummerweise ist der default-Wert für die Erstellung einer Navigation nicht brauchbar (zumindest war es bei mir so).  Denn mit dem Default-Wert behalten die Textfelder ihre Größe und passen sich nicht an der Inhalt an. Wenn ich nun den Abstand zwischen den Navigationspunkten berechnen will bekomme ich falsche Wert und die Navigationspunkte verschieben sich.</p>
<p>Ein weiteres, nerviges Verhalten ergibt sich, wenn dynamische Textfelder in MovieClips geladen werden, die eine Transformation erfahren haben. Die nachgeladenen Textfelder verzerren ebenfalls und ändern ihre Größe. Falls ihr dieses Problem auch beobachtet, so ist eine Lösung, die Textfelder in einen leeren, frischen MovieClip außerhalb des transformierten Clips zu laden.</p>
<p>Im Großen und Ganz gehört die TextField-Klasse, neben der Tween-Klasse, zu den Klassen, die mir am meisten Probleme bereitet haben. Entweder durch schlechte Dokumentation oder durch &#8220;verbuggtes&#8221; Verhalten. Würde mich freuen, wenn der eine oder andere seine Erfahrungen mit diesen beiden Klassen posten könnte. Vielleicht kriegen wir eine schöne Bug-Sammlung zusammen und es wird eine Hilfe für andere.</p>
<p><strong>Kleiner Nachtrag für die Bugsammlung:</strong><br />
Wenn Ihr ein TextFormat auf ein TextField anwendet, müsst ihr das TextFormat <strong>NACH</strong> der Zuweisung des Textes machen. Beispiel:</p>

<div class="wp_syntax"><div class="code"><pre class="as" style="font-family:monospace;">var meinText : TextField = new Textfield ();
var meinTextFormat : TextFormat = new TextFormat ();
meinTextFormat.size = 16;
meinTextFormat.color = 0xFF00FF;
meinTextFormat.font = &quot;Verdana&quot;;
&nbsp;
meinText.text = &quot;Mein Text&quot;;
linktitle.setTextFormat ( tf );</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://typo3lovesflash.der-gestalt.de/flash-textfelder-as3-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

