<?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>blog.mattiasnorell.com &#187; Flash</title>
	<atom:link href="http://blog.mattiasnorell.com/category/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mattiasnorell.com</link>
	<description>Och jobbet går bra...?</description>
	<lastBuildDate>Mon, 06 Sep 2010 13:33:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Flash on the beach</title>
		<link>http://blog.mattiasnorell.com/2010/08/16/flash-on-the-beach/</link>
		<comments>http://blog.mattiasnorell.com/2010/08/16/flash-on-the-beach/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 19:38:56 +0000</pubDate>
		<dc:creator>Mattias</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash on the beach 2010]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Two]]></category>
		<category><![CDATA[#nöjd]]></category>
		<category><![CDATA[flash on the beach]]></category>

		<guid isPermaLink="false">http://blog.mattiasnorell.com/?p=930</guid>
		<description><![CDATA[I flera år har jag velat åka. I år åker jag. Ni som vet vad &#8221;Flash on the beach&#8221; är vet att jag  inte behöver skriva en lång text för att förklara hur nöjd jag är över det. Det här &#8230; <a href="http://blog.mattiasnorell.com/2010/08/16/flash-on-the-beach/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.mattiasnorell.com/blog/2010/08/fotb.jpg" rel="shadowbox[post-930];player=img;" onclick="pageTracker._trackPageview('/outgoing/static.mattiasnorell.com/blog/2010/08/fotb.jpg?referer=');"><img class="alignnone size-full wp-image-931" title="Flash on the beach - Confirmation email" src="http://static.mattiasnorell.com/blog/2010/08/fotb.jpg" alt="" width="640" height="347" /></a></p>
<p>I flera år har jag velat åka. I år åker jag. Ni som vet vad &#8221;Flash on the beach&#8221; är vet att jag  inte behöver skriva en lång text för att förklara hur nöjd jag är över det. Det här kommer bli grymt. Grymt!</p>
<p>Grymt!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mattiasnorell.com/2010/08/16/flash-on-the-beach/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Trevlig sommar fackböcker</title>
		<link>http://blog.mattiasnorell.com/2010/07/12/trevlig-sommar-fackbocker/</link>
		<comments>http://blog.mattiasnorell.com/2010/07/12/trevlig-sommar-fackbocker/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 11:01:01 +0000</pubDate>
		<dc:creator>Mattias</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Mattias en person]]></category>

		<guid isPermaLink="false">http://blog.mattiasnorell.com/?p=771</guid>
		<description><![CDATA[Då mitt intag av det tryckta ordet det senaste halvår har bestått av fackliteratur, och då främst böckerna ovan, tänker jag i sommar inte läsa en rad som kan göra mig mer allmänbildad, utbildad eller på något sätt utvecklad. Jag &#8230; <a href="http://blog.mattiasnorell.com/2010/07/12/trevlig-sommar-fackbocker/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.mattiasnorell.com/blog/2010/07/booksaspnetcsharpactionscript.jpg" rel="shadowbox[post-771];player=img;" onclick="pageTracker._trackPageview('/outgoing/static.mattiasnorell.com/blog/2010/07/booksaspnetcsharpactionscript.jpg?referer=');"><img class="alignright size-full wp-image-772" title="Books" src="http://static.mattiasnorell.com/blog/2010/07/booksaspnetcsharpactionscript.jpg" alt="" width="640" height="480" /></a></p>
<p>Då mitt intag av det tryckta ordet det senaste halvår har bestått av fackliteratur, och då främst böckerna ovan, tänker jag i sommar inte läsa en rad som kan göra mig mer allmänbildad, utbildad eller på något sätt utvecklad. Jag skall läsa påhittade saker. Historier som inte behöver följa någon syntax. Berättelser som inte slutar med en kompilering. Saker med fantasi som inte framställs genom kod. I sommar tänkte jag sätta i mig slutet på John Ajvide Lindqvists &#8221;Pappersväggar&#8221; och &#8221;Lilla stjärna&#8221;. En gång för alla läsa klart &#8221;Aldrig fucka upp&#8221;. Göra upp med &#8221;Processen&#8221;. Och någon stans på vägen byta en av pelarna på farstukvisten.<em> </em></p>
<p>Trevlig sommar på er fackböcker, vi ses i höst.<em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mattiasnorell.com/2010/07/12/trevlig-sommar-fackbocker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Open a jQuery LightBox from Flash</title>
		<link>http://blog.mattiasnorell.com/2010/05/07/open-a-jquery-lightbox-from-flash/</link>
		<comments>http://blog.mattiasnorell.com/2010/05/07/open-a-jquery-lightbox-from-flash/#comments</comments>
		<pubDate>Fri, 07 May 2010 12:39:45 +0000</pubDate>
		<dc:creator>Mattias</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[In english]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[lightbox]]></category>

		<guid isPermaLink="false">http://blog.mattiasnorell.com/?p=562</guid>
		<description><![CDATA[The idea behind this plugin is to let Flash call a jQuery-function that will open up a LightBox. Nothing fancy, just a lightbox. But before we begin I have two things to say: 1. This is a work in progress. &#8230; <a href="http://blog.mattiasnorell.com/2010/05/07/open-a-jquery-lightbox-from-flash/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The idea behind this plugin is to let Flash call a jQuery-function that will open up a LightBox. Nothing fancy, just a lightbox. But before we begin I have two things to say:</p>
<p>1. This is a work in progress. As of now it only lets you display one image, no text or navigation and so on. I plan to rewrite most of the plugin sometime in the future to make it more like &#8221;the real lightbox&#8221;.</p>
<p>2. This jQuery plugin was inspired and based on jQuery lightBox by Leandro Vieira Pinho  &#8211; <a href="http://leandrovieira.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/leandrovieira.com?referer=');">http://leandrovieira.com</a>. In other words, I stole pretty much everything and rewrote some of the code.</p>
<p>Demo can be found <a href="http://dev.mattiasnorell.com/as3lightbox/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/dev.mattiasnorell.com/as3lightbox/?referer=');">here</a>.<br />
And a developmentversion of the plugin <a href="http://dev.mattiasnorell.com/as3lightbox/js/jquery.flashlightbox-0.1.js" target="_blank" onclick="pageTracker._trackPageview('/outgoing/dev.mattiasnorell.com/as3lightbox/js/jquery.flashlightbox-0.1.js?referer=');">here</a>. (You need to copy/paste right now, sorry.)<br />
﻿﻿<br />
Include the following in your html-file:<br />
ALWAYS add &#8221;id&#8221; as an attribute in your embedcode if you want IE7 to do what you want.</p>
<pre class="brush: js; font-size: 50%">&lt;link rel="stylesheet" type="text/css" href="JavaScript/flashlightbox/jquery.lightbox-0.5.css" media="screen" /&gt;
&lt;script type="text/javascript" src="JavaScript/flashlightbox/jquery.flashlightbox-0.1.js"&gt;&lt;/script&gt;
<script src="js/swfobject.js" type="text/javascript"><!--mce:0--></script>
&lt;script type="text/javascript"&gt;

$(document).ready(function() {
$('body').append('&lt;div id="flashLightbox"&gt;&lt;/div&gt;');
});

function flashLightbox(val) {
$('#flashLightbox').flashLightBox({
image: val,
imageLoading:'lightbox-ico-loading.gif',
imageBlank:'lightbox-blank.gif'});
}

&lt;/script&gt;

<script type="text/javascript"><!--mce:1--></script>
</pre>
<p>The code for the demoswf (I use FlashDevelop, FlexSDK 3.5 and Flash Player 9):</p>
<pre class="brush: actionscript3; font-size: 50%">package
{

// Import stuff
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.IOErrorEvent;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.external.ExternalInterface;
import flash.events.IOErrorEvent;
import flash.display.Loader;
import flash.net.URLLoader;
import flash.net.URLRequest;

/**
* ...
* @author Mano
*/

public class Main extends Sprite
{

// Setup vars used later on
private var imgUrl:String;
private var imgLoader:Loader = new Loader;

public function Main():void
{

// It's hammertime!
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null):void
{
// Always remove eventlisteners you dont use
removeEventListener(Event.ADDED_TO_STAGE, init);

//
stage.align=StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

// Set the var image Url.
if (this.loaderInfo.parameters.imgUrl) {
imgUrl = this.loaderInfo.parameters.imgUrl;
}else {
imgUrl = '2648636603_c65d0ecc9c_b.jpg';
}

// Load the image
imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete,false,0,true);
imgLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,onError,false,0,true);

var request:URLRequest = new URLRequest(imgUrl);
imgLoader.load(request);
}

private function zoom(e:MouseEvent):void {
// If the swf is allowed to use ExternalInterface we call the javascript-function 'flashLightbox'.
// Remeber to always test ExternalInterface on a server and not localy.
if (ExternalInterface.available) {
ExternalInterface.call("flashLightbox", imgUrl);
}else {
trace("ExternalInterface not available");
}
}

private function onComplete(e:Event):void {
/*
Next we resize the image so that we can load a huge image, which we probably will since we want to zoom it and it might not fit.
We create a bitmap and load the loadercontent into the bitmap.
*/

var image:Bitmap = Bitmap(imgLoader.content);
var imageHeigth:int = 200;

var newWidth:int = image.width/image.height * imageHeigth;
image.height = imageHeigth;
image.width = newWidth;
image.smoothing = true;

imgLoader.unload();

/*
* Since we are going to add a MouseEvent we need to create a holder in which we place the bitmap
* because bitmaps are not InteractiveObjects and don't have a clue how to fire events.
*/

var holder:Sprite = new Sprite();

// Some graphic mumbojumbo.
holder.graphics.beginFill(0xcccccc, 1);
holder.graphics.drawRoundRect(0, 0, image.width+40, image.height+40, 20);
holder.graphics.endFill();

// Add eventlistener
holder.addEventListener(MouseEvent.CLICK, zoom);

image.x = 20;
image.y = 20;

holder.addChild(image);

// Position the sprite in the center of the stage
holder.x = (stage.stageWidth - holder.width) / 2;
holder.y = (stage.stageHeight - holder.height) / 2;

addChild(holder);

trace('Image loaded. URL: ' + imgUrl);
}

private function onError(e:IOErrorEvent):void {
trace('Image not found. URL: ' + imgUrl);
}

}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mattiasnorell.com/2010/05/07/open-a-jquery-lightbox-from-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic AS3 mask using BitmapData</title>
		<link>http://blog.mattiasnorell.com/2010/04/16/dynamic-as3-mask-using-bitmapdata/</link>
		<comments>http://blog.mattiasnorell.com/2010/04/16/dynamic-as3-mask-using-bitmapdata/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 14:41:46 +0000</pubDate>
		<dc:creator>Mattias</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[In english]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[bitmap]]></category>
		<category><![CDATA[bitmapdata]]></category>
		<category><![CDATA[tweenlite]]></category>

		<guid isPermaLink="false">http://blog.mattiasnorell.com/?p=541</guid>
		<description><![CDATA[A while ago I got a question about how you mask displayobjects using a dynamic mask that &#8221;record&#8221; movement. As always, you can do this in about a million different ways but this is the one I use most frequently. &#8230; <a href="http://blog.mattiasnorell.com/2010/04/16/dynamic-as3-mask-using-bitmapdata/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A while ago I got a question about how you mask displayobjects using a dynamic mask that &#8221;record&#8221; movement. As always, you can do this in about a million different ways but this is the one I use most frequently. I&#8217;ve added some comments in the code if you are unsure of what some things do but it&#8217;s all basic AS3-stuff I use apart from the tweening library <a href="http://www.greensock.com/tweenlite/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.greensock.com/tweenlite/?referer=');">TweenLite</a>, a library I use almost every day so if you havn&#8217;t tried it, do it. The delayedCall-function alone is a sweet sweet piece of nerdlove.</p>
<p>And I use FlashDevelop and the FlexSDK, so if you use the Flash IDE you need to remove the embedcode on row 24-25 and import the image from the library.</p>
<p><a rel="shadowbox;height=600;width=600;backgroundColor=#fff" href="http://static.mattiasnorell.com/blog/2010/04/MovingMask.swf" onclick="pageTracker._trackPageview('/outgoing/static.mattiasnorell.com/blog/2010/04/MovingMask.swf?referer=');">Demo</a></p>
<pre class="brush: actionscript3; font-size: 50%">package
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.events.Event;
	import com.greensock.TweenLite;

	/**
	 * ...
	 * @author Mano
	 */
	public class Main extends Sprite
	{

		// Setup a few variables
		private var background:Sprite = new Sprite();
		private var ballHolder:Sprite = new Sprite();
		private var ball:Sprite = new Sprite();
		private var maskBPD:BitmapData;
		private var maskBMP:Bitmap = new Bitmap();

		// Embed the image "the Flex SDK"-way
		[Embed(source="key.jpg")]
		public var imgCls:Class;

		public function Main():void
		{
			// Makesure the stage is ready
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}

		private function init(e:Event = null):void
		{
			// Remove the eventlistener. ALWAYS remove unnecessary listeners.
			removeEventListener(Event.ADDED_TO_STAGE, init);

			// Create the BitmapData. Use tranceparancy or it will mask everything.
			maskBPD = new BitmapData(stage.stageWidth, stage.stageHeight, true,0xffffff);

			// And a ball to play with
			ball.graphics.beginFill(0xFF00FF, 1);
			ball.graphics.drawCircle(0, 0, 30);
			ball.graphics.endFill();

			// Add the background image to the stage
			background.addChild(new imgCls());
			addChild(background);

			// ...somthing to hold our ball
			addChild(ballHolder);
			ballHolder.addChild(ball);

			// ...and the mask
			addChild(maskBMP);

			// ...and set the the bitmap as a mask for "background".
			background.mask = maskBMP;

			// Add a listener that will call the function updateBallPosition everytime the event EnterFrame is fired.
			stage.addEventListener(Event.ENTER_FRAME, updateBallPosition);
		}

		private function updateBallPosition(e:Event):void {
			// To make stuff a little easier we use the excellent TweenLite
			// First we kill all of our balltweens
			TweenLite.killTweensOf(ball, false);
			// ...and tell our ball to move to the same position as the mousepointer.
			TweenLite.to(ball, 1, { x:mouseX, y:mouseY } );

			// Draw the clip "ballHolder" to the bitmapdata
			maskBPD.draw(ballHolder);
			// And update the Bitmapimage
			maskBMP.bitmapData = maskBPD;

			// This is really important, we need to cache both the background and the mask as bitmaps otherwise the mask won't work.
			background.cacheAsBitmap = true;
			maskBMP.cacheAsBitmap = true;
		}
	}
}</pre>
<p>We could add a lot of balls or what ever object we want to play around with and change the way the move but you get the idea. So, run along now kids and play with you own balls, or what ever object you want.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mattiasnorell.com/2010/04/16/dynamic-as3-mask-using-bitmapdata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Är en alternativ AppStore lösningen?</title>
		<link>http://blog.mattiasnorell.com/2010/04/14/ar-en-alternativ-appstore-losningen/</link>
		<comments>http://blog.mattiasnorell.com/2010/04/14/ar-en-alternativ-appstore-losningen/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 08:03:15 +0000</pubDate>
		<dc:creator>Mattias</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[appstore]]></category>

		<guid isPermaLink="false">http://blog.mattiasnorell.com/?p=524</guid>
		<description><![CDATA[Vi vet sedan tidigare att Apple mer eller mindre omöjliggjort iPhoneutveckling genom Flash CS5 vilket jag fortfarande tycker är tråkigt, skitdumt och allmänt onödigt. Men i grund och botten förstår jag varför Apple gör som de gör, något jag fortfarande &#8230; <a href="http://blog.mattiasnorell.com/2010/04/14/ar-en-alternativ-appstore-losningen/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Vi vet sedan tidigare att Apple mer eller mindre omöjliggjort iPhoneutveckling genom Flash CS5 vilket jag fortfarande tycker är tråkigt, skitdumt och allmänt onödigt. Men i grund och botten förstår jag varför Apple gör som de gör, något jag fortfarande inte håller med om, men om de nu inte vill släppa in vad som helst i AppStore, varför inte ge oss användare mer än en distributionskanal för appar?</p>
<p>Vill man kan man hämta sina appar genom AppStore, appar som gått igenom Apples kontroller och är 100% Applefierade. Sedan skulle det finnas ett alternativt sätt att installera appar, antingen liknande sättet Adobe Air-program installeras eller en alternativ AppStore där en del i användaravtalet talar om att man hämtar och kör appar på egen risk. Sköter vi som utvecklare oss, för det finns ändå en stor del Flashutvecklare som är duktiga programmerare <a href="http://computersweden.idg.se/2.2683/1.310165/appleutvecklare-skont-att-slippa-flash" target="_blank" onclick="pageTracker._trackPageview('/outgoing/computersweden.idg.se/2.2683/1.310165/appleutvecklare-skont-att-slippa-flash?referer=');">till skillnad mot vad en del tror</a>, så blir risken minimal att dåliga appar slinker igen. Användarna blir nöjda, kunderna blir nöjda, vi blir nöjda. Win-win helt enkelt.</p>
<p>Men chansen för att detta skulle hända är tyvärr obefintlig. Kanske är dags för Adobe att sätta ner foten och öppna en egen repository så att vi som jailbreakat kan hämta appar genom Cydia? Även om Apple skulle se det som en krigsförklaring skulle det vara en grym markering från Adobes sida. &#8221;Vi gör inte produkter för er Apple, vi gör dem för användarna. Både för våra OCH era.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mattiasnorell.com/2010/04/14/ar-en-alternativ-appstore-losningen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple och Adobes kärleksbarn talar ut</title>
		<link>http://blog.mattiasnorell.com/2010/04/11/apple-och-adobes-karleksbarn-talar-ut/</link>
		<comments>http://blog.mattiasnorell.com/2010/04/11/apple-och-adobes-karleksbarn-talar-ut/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 12:52:02 +0000</pubDate>
		<dc:creator>Mattias</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[os4]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://blog.mattiasnorell.com/?p=513</guid>
		<description><![CDATA[Jag är Applenörd i själ och hjärta. Majoriteten av tekniken, om det så handlar om routrar, datorer eller telefoner i mitt hem har ett äpple på sig. Vi kan kort och gott säga att jag är en del av Applesekten. &#8230; <a href="http://blog.mattiasnorell.com/2010/04/11/apple-och-adobes-karleksbarn-talar-ut/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Jag är Applenörd i själ och hjärta. Majoriteten av tekniken, om det så handlar om routrar, datorer eller telefoner i mitt hem har ett äpple på sig. Vi kan kort och gott säga att jag är en del av Applesekten. Jag är också flashutvecklare. Vilket jag är mest går inte att säga utan jag ser mig mer som kärleksbarnet mellan Apple och Adobe. Därför blev jag, och många flashutvecklare med mig, överlycklig när Adobe gick ut med att vi i Flash CS5 skulle kunna producera iPhoneappar, bara så där.</p>
<p>Men det var då.</p>
<p>Alla med ett uns intresse för flash, iPhones och så vidare vet att så är inte längre fallet. Apple ändrade sitt utvecklaravtal på så sätt att endast program och metoder från Apple får användas för utveckling av appar. Detta har det skrivits spaltmeter om så det tänker jag inte göra utan tänker ge en helt personlig syn på de senaste månaderna och varför jag helt plötsligt hellre skulle flytta hem till Adobe om min kära Apple/Adobe-familj skulle skilja sig.</p>
<p>Det finns just nu två läger, vi som tycker Apple gjort fel och de som tycker Apple gjort rätt. På &#8221;felsidan&#8221; står primärt flash- och liknande utvecklare. På &#8221;rättsidan&#8221; står de som kan Objective-C och tycker att Apple har en väldigt bra poäng. Några av dem har till och med gått så långt att kalla oss &#8221;icke Obj-C kunniga&#8221; lata.</p>
<p>Att kalla oss just det, lata som inte vill eller orkar lära oss ett nytt språk, tycker jag är orättvist. Jag jobbar professionellt med ActionScript, Flex, ASP och ASP.NET (C#). Det är ändå tre olika språk och minst två olika ramverk att hålla sig uppdaterad med. Det tar tid. Att lägga till ytterligare ett språk, som dessutom i stort sett är begränsat till Apples enheter, skulle göra att jag fick prioritera vad jag vill lära mig, hur bra jag vill bli och riskera att tappa den spetskompetens man ändå eftersträvar. Därför tyckte jag att det var en utmärkt ide att vi som flashutvecklare skulle kunna bygga iPhoneappar utan att behöva lära oss objectiv-c.</p>
<p>Jag förstår att Apple är oroliga för prestandaproblem och på så sätt vill att alla ska göra på samma sätt. Men slutanvändaren bryr sig inte det minsta om programmen är byggda i Obj-C, AS3, Unity eller vad det nu kan vara. Alla vill att enheten och programmen ska flyta utan problem, där är vi alla överens och inga protester från min sida.</p>
<p>Och det är inte bara vi nördar som tycker iPhonen är intressant, vi har kunder som också tycker att &#8221;den där iPhonen är allt en häftig liten sak&#8221; och som vill skapa appar, i många fall kampanjbaserade och med relativt kort livslängd. Nu ska jag vara ärlig och säga att jag inte har speciellt bra koll på hur långt tid det tar för en duktig iPhoneutvecklare att bygga en app och vilka pengar det handlar om men utifrån vad jag sett från Adobes sida skulle enklare appar inte ta speciellt lång tid i Flash. Detta skulle resultera i att kunder som kanske inte vill lägga en allt för stor påse pengar på ett relativt osäkert kort som en iPhoneapp ändå är kommer bli mer intresserade. Inte för att de bryr sig hur vi gör det, utan för att många tycker det känns tryggt att ha en och samma leverantör. Och det ger oss som producent en fjäder i hatten när vi kan säga &#8221;ja, vi kan göra iPhoneappar&#8221;.</p>
<p>Med andra ord är det Apple gjort genom att begränsa möjligheterna för oss utvecklare att de också begränsat möjligheterna för våra kunder, vilket är väldigt tråkigt. Varför inte låta oss utveckla som vi vill och sedan sortera bort de appar som är mindre bra och inte platsar i AppStore? Detta tvingar Adobe till att alltid förbättra cross-compilern och oss utvecklare att optimera vår kod men det verkar inte räcka för Apple som stänger ut oss helt med meddelandet &#8221;Ja ni kan ju skicka in dem, men inga garantier att något kommer igenom. Men förmodligen inte&#8221;.</p>
<p>Som det är nu känns det väldigt otryggt och jag skulle tänka till mer än tio gånger innan jag ens tänkte tanken att föreslå detta för en kund. Vi förlorar alltså ett kul projekt, kunden förlorar en bra produkt och Apple förlorar sina intäkter från AppStore. För mig känns det här som ett, för att använda ett passande ord, #fail.</p>
<p>Så jag förstår hur ni tänker Apple, men jag håller inte med.</p>
<p><strong><em>Detta inlägg finns också publicerat på bloggen &#8221;<a href="http://businessbyweb.se/2010/04/apple-och-adobes-karleksbarn-talar-ut/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/businessbyweb.se/2010/04/apple-och-adobes-karleksbarn-talar-ut/?referer=');">Business by web</a>&#8221;.</em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mattiasnorell.com/2010/04/11/apple-och-adobes-karleksbarn-talar-ut/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>import life. relationship. breakup;</title>
		<link>http://blog.mattiasnorell.com/2010/03/24/import-life-relationship-breakup/</link>
		<comments>http://blog.mattiasnorell.com/2010/03/24/import-life-relationship-breakup/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 10:41:09 +0000</pubDate>
		<dc:creator>Mattias</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Mattias en person]]></category>
		<category><![CDATA[Msn-sessions]]></category>

		<guid isPermaLink="false">http://blog.mattiasnorell.com/?p=506</guid>
		<description><![CDATA[R: ahaa, okej isär? trist&#8230; M: ja och nej. både och. R: jasså? M: nej men det är klart det är trist men ibland får man göra trista saker för att det egentligen är det bästa M: sa han och &#8230; <a href="http://blog.mattiasnorell.com/2010/03/24/import-life-relationship-breakup/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>R: ahaa, okej <img src='http://blog.mattiasnorell.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  isär? trist&#8230;<br />
M: ja och nej. både och.<br />
R: jasså?<br />
M: nej men det är klart det är trist men ibland får man göra trista saker för att det egentligen är det bästa<br />
M: sa han och lät totalt iskall men du fattar nog =)<br />
R: ja, jo, been there och så kände jag med <img src='http://blog.mattiasnorell.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
M: lite som AS2. kul ett tag men sen så brakar allt.<br />
R: LOL<br />
R: dagens liknelse<br />
M: haha jo men tänk vad bra om livet var som kod ibland.<br />
M: relationship.addEventListener(Event.ENOUGH_IS_ENOUGH, breakup);<br />
M: klockrent<br />
R: jo, men så är det ju typ. bara det att breakup ser ut typ såhär:<br />
R: private function breakup(evt : Event):void { throw new Error(&#8221;Undefined megafuckup!&#8221;); target.kill(); }<br />
M: kan också lägga till while(true){trace(randomFight());}<br />
R: ouch&#8230;. sen blir det överhettning. <img src='http://blog.mattiasnorell.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
M: tur att man inte hann med addChild innan iaf <img src='http://blog.mattiasnorell.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
R: hahahahaha<br />
R: den va klockren <img src='http://blog.mattiasnorell.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
R: det e väl ingen fara? finns ju removeChild? <img src='http://blog.mattiasnorell.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Mattias: ouch! &#8221;Älskling jag null:ade våra barn förut. Hoppas det är ok.&#8221;<br />
R: Nej, nej &#8211; orutinerat. Om du nu skulle använda det så borde du ju rimligen nulla alla referenser till henne _före_ du kör removeChild!? <img src='http://blog.mattiasnorell.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
R: hur som&#8230; verkar inte som om livet är som kod <img src='http://blog.mattiasnorell.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
M: och tur är väl det känns det som<br />
R: korrekt<br />
R: citerar dig: &#8221;tänk vad bra om livet var som kod ibland&#8221; <img src='http://blog.mattiasnorell.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
M: haha i stand corrected<br />
R: jag menar&#8230; RT @mrnorell &#8221;&#8230;tänk vad bra om livet var som kod ibland&#8230;&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mattiasnorell.com/2010/03/24/import-life-relationship-breakup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mirror movieclips and sprites using AS3</title>
		<link>http://blog.mattiasnorell.com/2010/03/24/mirror-movieclips-and-sprites-using-as3/</link>
		<comments>http://blog.mattiasnorell.com/2010/03/24/mirror-movieclips-and-sprites-using-as3/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 09:19:06 +0000</pubDate>
		<dc:creator>Mattias</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.mattiasnorell.com/?p=497</guid>
		<description><![CDATA[One thing I had a hard time getting my head around when I started learning actionscript was how to use the matrixclass. Most of the time I needed to do quite simple stuff like flipping a movieclip around its own &#8230; <a href="http://blog.mattiasnorell.com/2010/03/24/mirror-movieclips-and-sprites-using-as3/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One thing I had a hard time getting my head around when I started learning actionscript was how to use the matrixclass. Most of the time I needed to do quite simple stuff like flipping a movieclip around its own axis. And since I needed to do it again a few days ago I thought &#8221;why not post the code so that other newbies can see&#8221;.</p>
<p>This is just the code cut from the project and exported as a single fla-file but you get the idea.</p>
<p><a rel="shadowbox;height=325;width=250;backgroundColor=#fff" href="http://static.mattiasnorell.com/blog/2010/03/mirror.swf" onclick="pageTracker._trackPageview('/outgoing/static.mattiasnorell.com/blog/2010/03/mirror.swf?referer=');">Demo of the &#8221;movieclip mirror thingy&#8221;</a> and <a href="http://static.mattiasnorell.com/blog/2010/03/mirror-movieclips-and-sprites-using-as3.zip" onclick="pageTracker._trackPageview('/outgoing/static.mattiasnorell.com/blog/2010/03/mirror-movieclips-and-sprites-using-as3.zip?referer=');">the mirror.fla</a>.</p>
<pre class="brush: actionscript3; font-size: 50%">holder.addEventListener(MouseEvent.CLICK,mirror);

function mirror(e:MouseEvent):void{

// Set up the matrix that will transform the bitmap later on. This one will flip horizontal...
var matrix : Matrix = new Matrix( -1, 0, 0, 1, holder.width, 0 );

// ...and this one vertical...
//	var matrix : Matrix = new Matrix( 1, 0, 0, -1, 0, holder.height );

// ...and this one will do both.
//	var matrix : Matrix = new Matrix( -1, 0, 0, -1, holder.width, holder.width );

// Create a new BitmapData with the same size as "holder".
var mirror : BitmapData = new BitmapData( holder.width,holder.height );

// Copy the visual content of "holder" and let the matrix do its magic.
mirror.draw( holder, matrix );

// We create a new bitmap and tell it to use the BitmapData "mirror" as source.
var image:Bitmap = new Bitmap(mirror);

// Unless we remove the child at level 0 the holderclip will eat ram if we mirror the holderclip alot since we use bitmaps.
holder.removeChildAt(0);

// Add the new bitmap to "holder".
holder.addChild(image);
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mattiasnorell.com/2010/03/24/mirror-movieclips-and-sprites-using-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript3 till HTML5 &#8211; Utopi eller lösning?</title>
		<link>http://blog.mattiasnorell.com/2010/02/02/actionscript3-till-html5-utopi-eller-losning/</link>
		<comments>http://blog.mattiasnorell.com/2010/02/02/actionscript3-till-html5-utopi-eller-losning/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 19:24:07 +0000</pubDate>
		<dc:creator>Mattias</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[crosscompiler]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.mattiasnorell.com/?p=440</guid>
		<description><![CDATA[Det är mycket prat om &#8221;kriget&#8221; mellan HTML5 och Flash. Apple har tagit sida, likaså Google och helt plötsligt ska alla som arbetar med flashutveckling börja se sig om efter ett nytt jobb. Någonstans på vägen har hela diskussionen blivit &#8230; <a href="http://blog.mattiasnorell.com/2010/02/02/actionscript3-till-html5-utopi-eller-losning/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Det är mycket prat om &#8221;kriget&#8221; mellan HTML5 och Flash. Apple har tagit sida, likaså Google och helt plötsligt ska alla som arbetar med flashutveckling börja se sig om efter ett nytt jobb. Någonstans på vägen har hela diskussionen blivit lika löjlig som vilket operativsystem som är bäst, vilken spelkonsol som är roligast och om hur vida iPad är något att ha eller inte. Många tycks se det som att två tekniker inte kan existera utan att slå ut den andra som om det skulle handla om någon form av teknisk Darwinism. Som ni förstår så tillhör jag varken &#8221;Flash ska dö&#8221; eller &#8221;HTML5 är skit&#8221;-lägret utan jag skulle helst se att de bästa delarna från båda sidorna kan användas.</p>
<p>Men jag tänkte inte skriva ännu ett &#8221;varför HTML5 och Flash ska gå hand i hand&#8221;-inlägg utan en tanke slog mig när jag stod och lagade mat idag. Tänk om Adobe skulle kunna göra något liknande som de gjort för iPhone-utvecklingen. Koda dina applikationer med AS3, sedan tar kompilatorn över och gör om den exporterade SWF-filen till ett program som går att installera på en iPhone. Att de tillförde ännu ett val, exportera ett actionscript-projekt inte bara som en SWF utan också som en HTML5-sida. Som det ser ut idag med tanke på vilka <a href="http://www.chromeexperiments.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.chromeexperiments.com/?referer=');">experiment som gjorts till Google Chrome</a> verkar man kunna göra ganska mycket med bland annat canvas-, video- och ljudtaggen samt en del JavaScript.</p>
<p>Mycket av det Flash kan göra idag skulle såklart vara svårt att åstadkomma men efter som vi redan sett riktigt bra exempel på till exempel <a href="http://www.chromeexperiments.com/detail/gravity/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.chromeexperiments.com/detail/gravity/?referer=');">fysikmotorer</a> och liknande i JavaScript känns inte detta helt omöjligt. Men i ett rent fallbacksyfte tror jag att detta skulle lösa många av de problem som det pågående formatkriget verkar handla om. Och jag tror att både kunder och utvecklare är villiga att lägga både tid och pengar på att skapa HTML5-versioner av sina Flashsidor om det &#8221;ändå görs automatiskt&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mattiasnorell.com/2010/02/02/actionscript3-till-html5-utopi-eller-losning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flashtester &#8211; En tanke, ett koncept</title>
		<link>http://blog.mattiasnorell.com/2010/02/01/flashtester-en-tanke-ett-koncept/</link>
		<comments>http://blog.mattiasnorell.com/2010/02/01/flashtester-en-tanke-ett-koncept/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 13:57:15 +0000</pubDate>
		<dc:creator>Mattias</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[flashtester]]></category>

		<guid isPermaLink="false">http://blog.mattiasnorell.com/?p=436</guid>
		<description><![CDATA[Något jag ibland kan sakna som flashutvecklare är en enkel möjlighet att testa något man gjort i mer än en version av Flash Player. Oftast när ett problem dyker upp så har det i nio fall av tio att göra &#8230; <a href="http://blog.mattiasnorell.com/2010/02/01/flashtester-en-tanke-ett-koncept/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Något jag ibland kan sakna som flashutvecklare är en enkel möjlighet att testa något man gjort i mer än en version av Flash Player. Oftast när ett problem dyker upp så har det i nio fall av tio att göra med en version av Flash Player man inte har installerad. Internet Explorer har sin version i <a href="http://www.my-debugbar.com/wiki/IETester/HomePage" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.my-debugbar.com/wiki/IETester/HomePage?referer=');">IETester</a> men jag har inte hittat något liknande för Flash, om det ens finns.</p>
<p>Adobe nämner <a href="http://kb2.adobe.com/cps/116/4da116d3.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/kb2.adobe.com/cps/116/4da116d3.html?referer=');">att man kan ha flera versioner av Flash Player installerad</a> och byta mellan dessa vilket får mig att dra slutsatsen om att det inte borde vara helt omöjligt att bygga ett gränsnitt som tar hand om att ändra vilken version som är den primära. Det är kanske en riktigt dum idé som drar med sig massor med problem, men om dessa problem skulle gå att undvika skulle jag gladeligen köra ett sådant program. Kanske inte är så användbart under utvecklingsfasen men när man börjar testa och framförallt letar  buggar skulle det vara riktigt bra. För mig behöver det inte vara mer avancerat än skissen nedan.</p>
<p>Så finns det något sådant här program redan?</p>
<p><a href="http://static.mattiasnorell.com/blog/2010/02/flashversion.jpg" rel="shadowbox[post-436];player=img;" onclick="pageTracker._trackPageview('/outgoing/static.mattiasnorell.com/blog/2010/02/flashversion.jpg?referer=');"><img class="alignnone size-full wp-image-437" title="flashversion" src="http://static.mattiasnorell.com/blog/2010/02/flashversion.jpg" alt="" width="570" height="266" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mattiasnorell.com/2010/02/01/flashtester-en-tanke-ett-koncept/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>