<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0">
    <title>yourminis developer blog</title>
    
    <link rel="alternate" type="text/html" href="http://devblog.yourminis.com/" />
    <link rel="service.post" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1685980" title="yourminis developer blog" /> 
    <id>tag:typepad.com,2003:weblog-1685980</id>
    <updated>2009-05-19T19:04:48Z</updated>
    
    <generator uri="http://www.typepad.com/">TypePad</generator>
    <link rel="self" href="http://feeds.feedburner.com/yourminisDeveloperBlog" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
        <title>Syndication Panel Translations (and some new Facebook stuff!)</title>
        <link rel="alternate" type="text/html" href="http://devblog.yourminis.com/2009/05/we-have-created-translated-versions-of-the-syndication-panel-for-several-different-languages-you-can-set-the-langauge-using.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1685980/entry_id=66938401" title="Syndication Panel Translations (and some new Facebook stuff!)" />
        <link rel="replies" type="text/html" href="http://devblog.yourminis.com/2009/05/we-have-created-translated-versions-of-the-syndication-panel-for-several-different-languages-you-can-set-the-langauge-using.html" thr:count="2" thr:when="2009-10-30T05:57:46Z" />
        <id>tag:typepad.com,2003:post-66938401</id>
        <published>2009-05-19T15:04:48-04:00</published>
        <updated>2009-05-19T19:07:00Z</updated>
        <summary>Syndication Panel Translations We have created translated versions of the syndication panel for Action Script 3.0 (Flash CS3+) users (our AS2 API already contained this functionality). Make sure you grab the latest version of our AS3 API to take advantage...</summary>
        <author>
            <name>Gavan Woolery</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="APIs" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://devblog.yourminis.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p><br /><strong>Syndication Panel Translations</strong></p><p>We have created translated versions of the syndication panel for Action Script 3.0 (Flash CS3+) users (our AS2 API already contained this functionality). Make sure you grab the latest version of our <a href="http://www.yourminis.com/developers/resources.aspx">AS3 API</a> to take advantage of this. You can set the language using widget.syndication.setLang(language:String). Here the "language" parameter corresponds to the standardized language code for the given language. There are also two localized versions of English, for American and British English respectively. You can see the list of supported language codes in the code below. You can also retrieve a String of the language code using widget.syndication.getLang(). The current language is also stored inside the Flashvar/setting "lang".
</p>
<p><textarea class="jscript" name="code">import yourminis.api.IWidget;
import flash.events.*;
var widget:IWidget;
addEventListener("widget-loaded",onWidgetLoaded);

var languages:Object = new Object();

languages["cz"] = "Czech"
languages["da"] = "Danish"
languages["de"] = "German"
languages["en"] = "English (American)"
languages["en_us"] = "English (American)"
languages["en_gb"] = "English (British)"
languages["es"] = "Spanish"
languages["fi"] = "Finnish"
languages["fr"] = "French"
languages["it"] = "Italian"
languages["nl"] = "Dutch"
languages["no"] = "Norwegian"
languages["pl"] = "Polish"
languages["sv"] = "Swedish"
languages["tr"] = "Turkish"

function onWidgetLoaded(evt:Event):void {
	widget.initWidget(300,250,0x000000);
	updateText();
	widget.addEventListener(widget.DROPDOWN_LOADED,onDropDownLoaded);
}

function updateText() {
	widget.alert("Current Language: " + widget.syndication.getLang() + " - " + languages[widget.syndication.getLang()]);
}

function onDropDownLoaded(evt:Event):void {
	var s:String;
	for (s in languages) {
		widget.addDropDownItem(languages[s], s, myfunction);
	}
	
}

function myfunction (param:String) {
	widget.syndication.setLang(param);
	updateText();
}
</textarea></p><p>
<br />
Please let us know if you find any translations that are incorrect in the syndication panel!</p><p><strong><br /></strong></p><p><strong>New Facebook Actionscript Libraries</strong></p><p>We have replaced our other Facebook dynamic library with the new apis that can be found here:</p><p><a href="http://code.google.com/p/facebook-actionscript-api/">http://code.google.com/p/facebook-actionscript-api/</a></p><p>What does this mean as a yourminis developer? </p><ol>
<li>
1.  An officially supported library created by Facebook and Adobe that will be maintained with all of the latest Facebook APIs </li>
<li>2.  An easier way to connect into Facebook when your widget is outside of Facebook (via Facebook Connect).  This is still under development on our end, but expect it to be available soon.  </li>
<li>3.  Access to new APIs that were not supported with the last library.</li>
</ol>
<ul>
</ul>
<p /><p>For an example of how to set up a widget with the dynamically included facebook library, look here:</p><p><a href="http://www.yourminis.com/developers/tutorials/as3/facebook.aspx">http://www.yourminis.com/developers/tutorials/as3/facebook.aspx</a></p><p>We are still working out some kinks so bear with us until we get this fully stabilized, but let us know in the developer forums what issues you are having.  At this time we only recommend using this library to connect while the widget is actually residing on Facebook, but feel free to experiment!</p></div>
</content>


    </entry>
    <entry>
        <title>"Sliver" Syndication Panel</title>
        <link rel="alternate" type="text/html" href="http://devblog.yourminis.com/2009/04/sliver-syndication-panel.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1685980/entry_id=65191771" title="&quot;Sliver&quot; Syndication Panel" />
        <link rel="replies" type="text/html" href="http://devblog.yourminis.com/2009/04/sliver-syndication-panel.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-65191771</id>
        <published>2009-04-09T03:07:01-04:00</published>
        <updated>2009-04-09T07:06:53Z</updated>
        <summary>We have implemented a new (optional) way of exposing the syndication panel. You will now have the ability to show destination sites for your widget on the front of your widget. A menu bar can be aligned to the top...</summary>
        <author>
            <name>Gavan Woolery</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="APIs" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://devblog.yourminis.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>We have implemented a new (optional) way of exposing the syndication panel.  You will now have the ability to show destination sites for your widget on the front of your widget.  A menu bar can be aligned to the top or bottom of your widget to show these locations.  The benefit of this menu bar is that it allows one less click, and can show the most important destinations (as you choose) up front.  Implementing this feature is very easy -- once your widget is initialized, you simply call widget.syndication.initOverlay(), as shown below:</p><p />

<p><textarea class="jscript" name="code">import yourminis.api.IWidget
var widget:IWidget;
addEventListener("widget-loaded",onWidgetLoaded);
function onWidgetLoaded(evt:Event) {
	widget.initWidget(100,100,0x000000);
	widget.syndication.initOverlay("facebook","bebo","myspace");
}
</textarea></p><p>

As you can see, you can pass in a list of strings for destinations that you want to appear on the menu. Here is a full list of the possible strings you can use:</p><p />

<p><textarea class="jscript" name="code">"addcontent" 	//copy embed code
"aim" 		//AIM pages
"bebo" 		//bebo.com
"blogger" 	//blogger.com
"desktop" 	//Adobe AIR
"facebook" 	//facebook.com
"freewebs" 	//webs.com
"friendster"	//friendster.com
"google" 	//Google Start Page
"hi5" 		//hi5.com
"live" 		//live.com
"mac" 		//Mac Dashboard
"myaol" 	//myAOL
"myspace"	//myspace.com
"netvibes"	//netvibes.com
"pageflakes"	//pageflakes.com
"sendtofriend"	//Email to Friend
"typepad"	//typepad.com
"vista"		//Vista Sidebar
"yahoo"		//Yahoo Widgets
</textarea></p><p>If you would like to customize the appearance and alignment of this component, you can call widget.syndication.styleOverlay(), as show below:</p><p /><p />

<p><textarea class="jscript" name="code">import yourminis.api.IWidget
var widget:IWidget;
addEventListener("widget-loaded",onWidgetLoaded);
function onWidgetLoaded(evt:Event) {
	widget.initWidget(100,100,0x000000);
	widget.syndication.initOverlay("facebook","bebo","myspace");
	widget.syndication.styleOverlay(
		true, //alignToTop:Boolean=false -- if true, component is aligned to top
		true, //autoHide:Boolean=false -- if true, component only appears on mouseover
		0xFF0000, //backgroundColor:uint=0 -- color of component background
		0x00FF00, //outlineColor:uint=0 -- color of component outline
		0.5, //backgroundAlpha:Number=0.9 -- alpha value of component background
		null //textFormat:TextFormat=null -- TextFormat of component text
	);
}

</textarea></p><p>
That's it! You can view an example of the "Sliver" syndication panel <a href="http://www.yourminis.com/minis/yourminis/sashi/mini:syndicationslivertest">here</a>.</p></div>
</content>


    </entry>
    <entry>
        <title>List Component Example</title>
        <link rel="alternate" type="text/html" href="http://devblog.yourminis.com/2009/02/list-component-example.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1685980/entry_id=63088505" title="List Component Example" />
        <link rel="replies" type="text/html" href="http://devblog.yourminis.com/2009/02/list-component-example.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-63088505</id>
        <published>2009-02-20T22:39:48-05:00</published>
        <updated>2009-02-21T03:43:22Z</updated>
        <summary>In this example we will show you how to use our SkinList component, which allows you to display a list of items with content laid out as you specify. The SkinList is very customizable, and because of this it may...</summary>
        <author>
            <name>Gavan Woolery</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Components" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://devblog.yourminis.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>In this example we will show you how to use our SkinList component, which allows you to display a list of items with content laid out as you specify.  The SkinList is very customizable, and because of this it may appear a bit complicated at first, but it is not difficult to learn how to use.  As usual, first download, unzip, and link your classpath to the <a href="http://yourminis.googlegroups.com/web/yourminiscomp.zip?hl=en&amp;gda=MuXklUMAAAA1Bc7lPYZla0buILHnFAgRY40etOjsEq90i7L40%20%20lGMvkebscuE1ePfYcYcUim52zcytiJ-HdGYYcPi_09pl8N7FWLveOaWjzbYnpnkpmxcWg&amp;gsc=8sbopxYAAAAMaOgXRfWLWfdWP4hqVlJ6g-kXU5InE%20%2009W2o0GCSVgCQ">Component Library</a>.  You can view an example of this component <a href="http://www.yourminis.com/minis/yourminis/Gavan/mini:listtut">here</a>, and download the FLA <a href="http://yourminis.googlegroups.com/web/tut_skinlist.fla?hl=en&amp;gda=AlY7gUIAAAA1Bc7lPYZla0buILHnFAgRDLhaDvlEKTirB8GDJg%20%20NmRpTJrzLCDxoTVkeHR_iM_ZFV4u3aa4iAIyYQIqbG9naPgh6o8ccLBvP6Chud5KMzIQ&amp;gsc=8sbopxYAAAAMaOgXRfWLWfdWP4hqVlJ6g-kXU5InE0%20%209W2o0GCSVgCQ">here</a>.  Because this example relies partially on library symbols, for ease of skinning the list, you cannot simply cut and paste the code below, you must download the aforementioned FLA.</p><p />

<p><textarea class="jscript" name="code">import yourminis.api.IWidget;
import yourminis.components.SkinList;

var this_mc = this;
var widget:IWidget;
var sl:SkinList;

var myData:Array = [
					{title:"Item 0",description:"Lorem ipsum dolor sit amet, consectetur adipisicing elit"},
					{title:"Item 1",description:"sed do eiusmod tempor incididunt ut labore et dolore magna aliqua"},
					{title:"Item 2",description:"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat"},
					{title:"Item 3",description:"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur"},
					{title:"Item 4",description:"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat"},
					{title:"Item 5",description:"Lorem ipsum dolor sit amet, consectetur adipisicing elit"},
					{title:"Item 6",description:"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur"},
					{title:"Item 7",description:"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat"},
					{title:"Item 8",description:"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur"},
					]

addEventListener("widget-loaded",onWidgetLoaded);

function onWidgetLoaded(evt:Event):void
{
	widget.chrome.resizable = true;
	widget.addEventListener(widget.WIDGET_RESIZED,onWidgetResize);
	widget.chrome.setBounds(240,180,1000,1000);
	widget.chrome.editEnabled = true;
	widget.initWidget(240,180,0x000000);
	widget.chrome.setTitle("List Tutorial");

	//Create the list
	//SkinList(_parent_mc, _w, _h, _cellHeight, _cellType:Class,_scrollType:Class,_cornerRadius:Number,_enableScroll:Boolean, _dataArray:Array)
	sl = new SkinList(
					 this_mc,		//_parent_mc:DispalyObject -- reference to the parent Sprite of the list
					 100,			//_w:Number -- initial width of the list (can be changed with setSize(w,h)
					 100,			//_h:Number -- initial height of the list (can be changed with setSize(w,h)
					 32,			//_cellHeight:Number -- Height of each cell in the list
					 cell,			//_cellType:Class -- A link to the class used to represent a cell in the list
					 scrollbar,	//_scrollType:Class -- A link to the class used to represent the scrollbar for the list
					 0,			//_cornerRadius:Number -- The corner radius of the list (for rounded corners)
					 true,			//_enableScroll:Boolean -- If true, shows the scrollbar, otherwise hides it
					 myData		//_dataArray:Array -- The array of data used by the list
					 );
	addChild(sl);
	resizeAll();
}

function resizeAll() {
	
	var w = widget.width;
	var h = widget.height;
	
	contentBack.width = w - 8;
	contentBack.height = h - 42;
	contentBack.x = 4;
	contentBack.y = 30;
	
	if (sl) {
		sl.x = contentBack.x;
		sl.y = contentBack.y;
		sl.setSize(contentBack.width,contentBack.height);
	}
}

function onWidgetResize(evt:Event):void {
	resizeAll();
}

function myFunction(ind:uint,desc:String) {
	widget.alert("You clicked on cell number: "+ind+". This cell has the following description: " + desc)
}
</textarea>
</p><p>
As you can see, the parameters for the constructor have been commented out for you, but just to make a few clarifications...two of the parameters, "_cellType" and "_scrollType", are classes.  Here, we link to classes that are exported out in the Library Panel ("cell" and "scrollbar"). This allows us to edit these symbols within Flash, rather than hand-coding every aspect of their appearance as an ActionScript Class.  Also, when you construct the SkinList you pass in an array of data (the "_dataArray" parameter), just like with the YMVideoContainer.  However, this data array can be more complex than a list of strings -- in fact it can contain any kind of data in the array elements, from Objects to integers to Strings.  This is because you actually configure how each cell handles the data, which we will cover below.  Like many of the other components, there is a setSize(w,h) function that allows you to resize the list -- here the size represents the total size of the list, scrollbar included.  If you open the library item "cell" by double clicking on it, you will see the code below, as well as the various graphical elements of the cell.</p>
<p><textarea class="jscript" name="code">//import flash.geom.*;

var this_mc;
var parent_mc;
var index;
var data;
var cellHeight;
var label_str:Array;
var borderSize;


function onInit(_par, _index, _data) {
	this_mc = this;
	this_mc.buttonMode = true;
	addEventListener(MouseEvent.ROLL_OVER, onOver);
	addEventListener(MouseEvent.ROLL_OUT, onOut);
	addEventListener(MouseEvent.CLICK, onClick);
	
	bg2_mc.visible = false;
	
	parent_mc = _par; //reference to the parent movie clip of the list
	index = _index; //the index number of this cell. The top cell is 0, the one below it 1, etc
	data = _data; //data passed into the cell
	
	cellHeight = 30;
	borderSize = 3;
}

function onResize(w,h) {
	
	cellHeight = 50;
	label_str = [
				 ["&lt;font size='11' face='Verdana'&gt;&lt;b&gt;",0],
				 [data.title,7],
				 ["&lt;/b&gt;\n",0],
				 [data.description,7],
				 ["&lt;/font&gt;",0]
				];
	
	//This array gets automatically resized to fit the text. When the text can't fit, it is cut off and an elipsis (...) is appended.
	//Each array item is a two element array -- the first element is the string, the second is a number is the average width of a character, in pixels. 0 for no cuttoff.
	
	
	h = cellHeight;
	fg_mc.width = w;
	bg2_mc.width = bg_mc.width = w;
	bg2_mc.height = bg_mc.height = fg_mc.height = h - 1;
	label_txt.width = w-borderSize*2;
	label_txt.height = h-borderSize*2;
	
	label_txt.x = borderSize;
	label_txt.y = borderSize;
	
	line_mc.x = borderSize;
	line_mc.y = fg_mc.height-1;
	line_mc.width = w-borderSize*2;
	label_txt.htmlText = textFit(label_str); //resize the cell label										 
}

function onOver(evt:MouseEvent) {
	bg2_mc.visible = true;
	fg_mc.alpha = 0;
	label_txt.textColor = 0x008800;
}

function onOut(evt:MouseEvent) {
	bg2_mc.visible = false;
	fg_mc.alpha = 0;
	label_txt.textColor = 0x333333;
}

function onClick(evt:MouseEvent) {
	fg_mc.alpha = 0;
	parent_mc.myFunction(index,data.description);
}




function textFit(mytext:Array):String {
	var n;
	var total_str = "";
	var i;
	
	
	var str;
	for (i = 0; i &lt; mytext.length; i++) {
		n = mytext[i][1];
		str = mytext[i][0];
		if (n == 0) {
			total_str += str;
		}
		else {
			total_str += getTextFit(str,label_txt.width/n);
		}
	}
	return total_str;
}

function getTextFit(content:String,strLen:Number):String {

	if(content == "" || content == null || typeof(content) == "undefined") {
		return content;
	}
	var oldlen = content.length;
	content = content.substr(0,strLen);
	if (content.length != oldlen) content += "...";
	return content;
}</textarea></p><p>You can completely customize the contents of this cell, the only thing that is required is that you implement the five functions below (they can be empty, but the functions should at least exist).  A description of each function is included as well.</p><p><strong>onInit(_par, _index, _data)</strong> -- This is called when the list is intialized.  It gives you an opportunity to set up the contents of the cell, as well as set up variables linking to important data.  "_par" will give you a reference to the parent of the list, or whatever you pass in to the "_parent_mc" parameter when constructing the list.  This is useful for calling functions not defined inside each cell (in this case, when a cell is clicked, "parent_mc.myFunction(index,data.description);" is called).  The "_index" parameter gives you access to the index of the cell, which corresponds to its position in the list.  The very top cell has an index of 0, the one below it 1, the one below that 2, and so forth.  The last parameter, "_data", gives you an item from the _dataArray that you pass in when constructing the SkinList. So, for example, if its the first cell in the list, it will pass in _dataArray[0] as the _data parameter here. </p><p><strong>onResize(w,h)</strong> -- this is called whenever SkinList.setSize(w,h) is called -- it will pass in the appropriate width and height to you, based on whether or not the scroll bar is visible, and you can resize your cell contents accordingly.  Here we use a special function called textFit() to fit the text to each cell so that if it is cutoff an ellipsis appears ("...").  Text fit takes an array of String/Number pairs, each number represents the average width of a character in the string.  If the number is 0, it ensures that the string does not get cut off at all.  The textFit() function is not required, but you are welcome to use it to make your text look more well formated.  </p><p><strong>onOver(evt:MouseEvent)</strong> --This is called whenever the user hovers over a cell with their mouse.  Here is a good place to turn on a highlight of some sort for interface/user feedback.</p><p><strong>onOut(evt:MouseEvent)</strong> -- Likewise, this function is called whenever the user's cursor leaves a cell - this is a good place to turn off any sort of highlight you have implemented</p><p><strong>onClick(evt:MouseEvent)</strong> -- This function is called when a user clicks on a cell.</p><p>It is easy to edit the appearance of any element inside the cell or scrollbar.  To edit the cell, open "cell" in the Library panel and double click on one of the elements -- you can then change its color by selecting the shape then using the color picker to pick a new color.  This can be done for any of the elements, you can also adjust opacity or add effects like bevels or drop shadows.  Note that the cell is completely customizable, and you can get rid of all these elements entirely and insert new ones -- however, you must update the code in this Symbol to reflect your changes.  The scrollbar is not like this, the symbols must remain named as they are, and nested in their current positions.  However, you can changed the colors and effects applied to the scrollbar.  Double click on the scrollbar symbol in the Library Panel to open it.  Inside the scrollbar, any symbol named "over" is the highlight that appears when a user hovers over that element of the scrollbar.  These symbols will be invisible until the user hovers over, and then they will disapear again when the user hovers out.</p><p>That covers it! On the surface, this class may appear a bit complicated because there is a lot of code that goes into creating a customizable list.  However, it should be fairly easy to tailor the list to your needs, just experiment a little bit if you curious what a particular item does. As usual, you can visit the <a href="http://groups.google.com/group/yourminis">yourminis Developer Network</a> if you have any questions, and I will be happy to help you out.</p><p /></div>
</content>


    </entry>
    <entry>
        <title>Video Player Component Example</title>
        <link rel="alternate" type="text/html" href="http://devblog.yourminis.com/2009/02/video-player-component-example.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1685980/entry_id=63080827" title="Video Player Component Example" />
        <link rel="replies" type="text/html" href="http://devblog.yourminis.com/2009/02/video-player-component-example.html" thr:count="2" thr:when="2009-07-26T23:21:13Z" />
        <id>tag:typepad.com,2003:post-63080827</id>
        <published>2009-02-19T18:30:04-05:00</published>
        <updated>2009-02-19T23:34:56Z</updated>
        <summary>This next example will show you how to use our YMVideoContainer component. This component allows you to load an array of videos, navigate through them, and control their playback with a built-in control panel. If you have not already done...</summary>
        <author>
            <name>Gavan Woolery</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Components" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://devblog.yourminis.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;This next example will show you how to use our YMVideoContainer component.&amp;nbsp; This component allows you to load an array of videos, navigate through them, and control their playback with a built-in control panel.&amp;nbsp; If you have not already done so, download and unzip our &lt;a href="http://yourminis.googlegroups.com/web/yourminiscomp.zip?hl=en&amp;amp;gda=MuXklUMAAAA1Bc7lPYZla0buILHnFAgRY40etOjsEq90i7L40%20%20lGMvkebscuE1ePfYcYcUim52zcytiJ-HdGYYcPi_09pl8N7FWLveOaWjzbYnpnkpmxcWg&amp;amp;gsc=8sbopxYAAAAMaOgXRfWLWfdWP4hqVlJ6g-kXU5InE%20%2009W2o0GCSVgCQ"&gt;Component Library&lt;/a&gt;, and make sure your classpath points to it.&amp;nbsp; A preview of this component is available &lt;a href="http://www.yourminis.com/minis/yourminis/Gavan/mini:videotut"&gt;here&lt;/a&gt;.&amp;nbsp; You can download the YMVideoContainer example FLA &lt;a href="http://yourminis.googlegroups.com/web/tut_movie.fla?hl=en&amp;amp;gda=KRVVXj8AAAA1Bc7lPYZla0buILHnFAgRGiiiyf0TRFo0vVSsO4iox%20%20uEB-Q15TWFuwsiDi-EbE2WccyFKn-rNKC-d1pM_IdV0&amp;amp;gsc=LfJbvhYAAABTF2ZdV5VQLLssXpRVbUf7g-kXU5InE09W2o0GCSVgCQ"&gt;here&lt;/a&gt;, or grab the code below:&lt;/p&gt;
&lt;p&gt;&lt;textarea class="jscript" name="code"&gt;import yourminis.api.IWidget;
import yourminis.components.YMVideoContainer;

var widget:IWidget;
var ymvc:YMVideoContainer;

//You can replace these with your own urls here to create a playlist of FLV movies
var myMovies:Array = [
					 "http://a123.g.akamai.net/7/123/10742/v0001/emergstor.download.akamai.com/8872/vmtv/videos/widget/vmtv_metacafe_driving_slated_320.flv",
					 "http://a123.g.akamai.net/7/123/10742/v0001/emergstor.download.akamai.com/8872/vmtv/videos/widget/vmtv_metacafe_sink_slated_320.flv",
					 "http://a123.g.akamai.net/7/123/10742/v0001/emergstor.download.akamai.com/8872/vmtv/videos/widget/mt_rt117604_its_on_320.flv",
					 "http://a123.g.akamai.net/7/123/10742/v0001/emergstor.download.akamai.com/8872/vmtv/videos/widget/mt_rt117604_a_kiss_320.flv"
					 ]

addEventListener("widget-loaded",onWidgetLoaded);

function onWidgetLoaded(evt:Event):void
{
	widget.chrome.resizable = true;
	widget.addEventListener(widget.WIDGET_RESIZED,onWidgetResize);
	widget.syndication.allowFullScreen = true;
	widget.chrome.setBounds(240,180,1000,1000);
	widget.chrome.editEnabled = true;
	widget.initWidget(240,180,0x000000);
	widget.chrome.setTitle("Video Player Sample");
	
	//Create the video player
	//YMVideoContainer(_widget=null, _themeColor:uint=0xAADE0E,_showStart:Boolean=false,_alignment=2,_playerW=160,_playerH=120,_padding=3)
	ymvc = new YMVideoContainer(
								widget,		//_widget:* -- Reference to your widget instance
								0xFFFFFF,	//_themeColor:uint -- The color of the video player buttons
								true,		//_showStart:Boolean -- if true, shows a big play button before starting, otherwise it autoplays
								2,			//_alignment:uint -- alignment of the controls
											//7:top_left,8:top_center,9:top_right,
											//4:middle_left,5:middle_center,6:middle_right,
											//1:bottom_left,2:bottom_center,3:bottom_right
								236,		//_playerW:Number -- the initial player width
								176,		//_playerH:Number -- the initial player height
								3			//_padding:Number -- the amount of padding (in pixels) between player buttons
								);
	addChild(ymvc);
	
	ymvc.setVideos(myMovies);
	resizeAll();
}

function resizeAll() {
	
	var w = widget.width;
	var h = widget.height;
	
	if (ymvc) {
		ymvc.x = 4;
		ymvc.y = 26;
		ymvc.setSize(w-8,h-30);
	}
}

function onWidgetResize(evt:Event):void {
	resizeAll();
}&lt;/textarea&gt;&lt;/p&gt;&lt;p&gt;Once you have constructed an instance of the YMVideoContainer, you can set the list of videos it uses with the setVideos() function, which takes in a single array as a parameter.&amp;nbsp; This array should only contain string values, and each string should be a full URL linking to an FLV file.&amp;nbsp; The YMVideoContainer will treat this array like a playlist.&amp;nbsp; If a movie is playing, it will pause automatically if you hide the movie player (in this case, ymvc.visible = false would do this).&amp;nbsp; You can also tell it to play a particular video in the playlist with the setIndex function, which takes a uint as a parameter designating the array index of the video to play.&amp;nbsp; Lastly, you can resize the video with the setSize() function, which as usual takes a width and a height value as parameters.&amp;nbsp; The video will always be resized proportionately.&lt;/p&gt;&lt;p&gt;Both the ImageLoader and YMVideoContainer components should help you with loading media, but what if you want to display a list of media?&amp;nbsp; The next example will show you how to use our SkinList component, which will allow you to easily create customizable ("skinnable") lists.&lt;br&gt; &lt;/p&gt;&lt;/div&gt;
</content>


    </entry>
    <entry>
        <title>Image Loader Component Sample</title>
        <link rel="alternate" type="text/html" href="http://devblog.yourminis.com/2009/02/image-loader-component-sample.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1685980/entry_id=63077797" title="Image Loader Component Sample" />
        <link rel="replies" type="text/html" href="http://devblog.yourminis.com/2009/02/image-loader-component-sample.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-63077797</id>
        <published>2009-02-19T17:11:34-05:00</published>
        <updated>2009-02-19T23:20:59Z</updated>
        <summary>We have decided to open up our component library to users -- normally we use this library internally to develop widgets, but we thought you would find it useful as well. There are a lot of components for you to...</summary>
        <author>
            <name>Gavan Woolery</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Components" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://devblog.yourminis.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>We have decided to open up our component library to users -- normally we use this library internally to develop widgets, but we thought you would find it useful as well.  There are a lot of components for you to explore; at the moment documentation is very sparse, but we will be improving this with time, in addition to other aspects of the library.  Also, we will be providing examples of these components in action, and short tutorials on how to use them.  You can download the yourminis Component Library <a href="http://yourminis.googlegroups.com/web/yourminiscomp.zip?hl=en&amp;gda=MuXklUMAAAA1Bc7lPYZla0buILHnFAgRY40etOjsEq90i7L40lGMvkebscuE1ePfYcYcUim52zcytiJ-HdGYYcPi_09pl8N7FWLveOaWjzbYnpnkpmxcWg&amp;gsc=8sbopxYAAAAMaOgXRfWLWfdWP4hqVlJ6g-kXU5InE09W2o0GCSVgCQ">here</a>.  You will want to make sure that your classpath ("File"-&gt;"Publish
Settings"-&gt;"Flash [tab]"-&gt;"Settings...") includes a link to where
ever you extract the yourminis Component Library to.</p><p><br />The first component we will be showing is the ImageLoader utility,
which allows you to load images, frame them, and resize them
proportionately (so that they don't skew when resized).  You can view a widget using this component <a href="http://www.yourminis.com/minis/yourminis/Gavan/mini:imageloadertut">here</a>.  You can download the sample FLA <a href="http://yourminis.googlegroups.com/web/tut_imgloader.fla?hl=en&amp;gda=3L3sYUMAAAA1Bc7lPYZla0buILHnFAgRDLhaDvlEKTirB8GDJ%20%20gNmRtWuxyP2NrWERSyi2cgyvl4ytiJ-HdGYYcPi_09pl8N7FWLveOaWjzbYnpnkpmxcWg&amp;gsc=8sbopxYAAAAMaOgXRfWLWfdWP4hqVlJ6g-kXU5InE%20%2009W2o0GCSVgCQ">here</a> or grab the code from the code box below.</p>
<p><textarea class="jscript" name="code">import yourminis.api.IWidget;
import yourminis.utils.ImageLoader;

var widget:IWidget;
var il:ImageLoader;
var im_mc:Sprite;

addEventListener("widget-loaded",onWidgetLoaded);

function onWidgetLoaded(evt:Event):void
{
	widget.chrome.resizable = true;
	widget.addEventListener(widget.WIDGET_RESIZED,onWidgetResize);
	widget.chrome.setBounds(240,180,1000,1000);
	widget.initWidget(240,180,0x000000);
	widget.chrome.setTitle("Image Loader Sample");
	im_mc = new Sprite();
	im_mc.x = 4;
	im_mc.y = 25;
	addChild(im_mc);
	loadImage("http://static.guim.co.uk/Guardian/environment/gallery/2007/nov/12/wildlife/Giant-panda1C-David-Sheppar-8146.jpg");
}

function onWidgetResize(evt:Event):void {
	resizeAll();
}

function resizeAll() {
	var w = widget.width;
	var h = widget.height;
	if (il) il.setSize(w-8,h-29);
}

function loadImage(str) {
	if (im_mc.numChildren) im_mc.removeChildAt(0);
	il = new ImageLoader(
						 str,		//_url:String -- A string containing the URL of the image to load
						 20,		//_maxWidth:Number -- The maximum width of the image (can be changed with setSize(w,h) also)
						 20,		//_maxHeight:Number -- The maximum height of the image (can be changed with setSize(w,h) also)
						 true,		//_preserveRatio:Boolean -- If true, the image will be resized proportionately, otherwise it will fit its container exactly
						 false,		//_showIndicator:Boolean -- If true, a loading indicator will be shown while the image is loading
						 true,		//_centerImage:Boolean -- If true, the image will be centered inside its container, otherwise it will align to the upper left
						 4,			//_padding:Number -- padding between the image and its container
						 0x666666,	//_frameColor:uint -- color of the inside of the image container, -1 to disable
						 0xFF0000	//_frameBorderColor:uint -- color of the border around the image container, -1 to disable
						 );
	im_mc.addChild(il);
	resizeAll();	
}
</textarea><br />
</p><p>As you can see, after the widget is initialized in the "onWidgetLoaded" event handler, a new Sprite is created ("im_mc") to hold the ImageLoader.  This isn't required but it allows you more control over placing the ImageLoader before it is initialized, and allows you to easily dispose of the ImageLoader and create a new instance of it if you want to reload an image into it or change the way it is constructed.</p><p>A description of all the parameters for the constructor of the ImageLoader is provided in the code.  The "setSize(width,height)" function allows you to set the size of the image loader.  Note that we check if the instance "il" of the ImageLoader is defined before calling any function, as it is possible the user could remove the imageLoader object in their code if they were to dispose of the image.</p><p>The ImageLoader allows you to load images pretty easily, but what if you want to load movies?  Our next component sample will show you just how to do that.</p></div>
</content>


    </entry>
    <entry>
        <title>Tooltips</title>
        <link rel="alternate" type="text/html" href="http://devblog.yourminis.com/2009/02/tooltips.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1685980/entry_id=62324524" title="Tooltips" />
        <link rel="replies" type="text/html" href="http://devblog.yourminis.com/2009/02/tooltips.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-62324524</id>
        <published>2009-02-03T13:37:10-05:00</published>
        <updated>2009-02-03T22:51:38Z</updated>
        <summary>You can easily create tooltips that can provide additional info on any sprite you hover over. In the example below we attached the tooltip directly to the widget, so that when the user hovers over the widget, a tooltip will...</summary>
        <author>
            <name>Gavan Woolery</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Tips &amp; Tricks" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://devblog.yourminis.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;You can easily create tooltips that can provide additional info on any sprite you hover over.&amp;nbsp; In the example below we attached the tooltip directly to the widget, so that when the user hovers over the widget, a tooltip will pop up that says "This is a test".&amp;nbsp; Note that you can use a StyleSheet to customize the appearance of your tooltip text.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
&lt;textarea name="code" class="jscript"&gt;
import yourminis.api.IWidget;
var widget:IWidget;
addEventListener("widget-loaded",onWidgetLoaded);
function onWidgetLoaded(evt:Event) {
	widget.initWidget(300,250,0x000000);
	var tt:StyleSheet = new StyleSheet();
	tt.setStyle("myStyleSheetName",{fontFamily:'Verdana', fontSize:'9px', color:'#FF0000'});
	widget.addTooltip(widget,"&lt;myStyleSheetName&gt;This is a test&lt;/myStyleSheetName&gt;",0x0000FF,0x00FF00,tt);
}
&lt;/textarea&gt;
&lt;/p&gt;&lt;/div&gt;
</content>


    </entry>
    <entry>
        <title>Loading Remote Data</title>
        <link rel="alternate" type="text/html" href="http://devblog.yourminis.com/2009/02/loading-remote-data.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1685980/entry_id=62324346" title="Loading Remote Data" />
        <link rel="replies" type="text/html" href="http://devblog.yourminis.com/2009/02/loading-remote-data.html" thr:count="1" thr:when="2009-03-03T17:01:34Z" />
        <id>tag:typepad.com,2003:post-62324346</id>
        <published>2009-02-03T13:33:43-05:00</published>
        <updated>2009-02-04T00:05:05Z</updated>
        <summary>Developers will often face a roadblock when loading remote data in their widget, because unless a cross-domain file is present, Flash will throw a "sandbox" security error. For performance reasons, it is better if you rely on a cross-domain file...</summary>
        <author>
            <name>Gavan Woolery</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Tips &amp; Tricks" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://devblog.yourminis.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Developers will often face a roadblock when loading remote data in their widget, because unless a cross-domain file is present, Flash will throw a "sandbox" security error.&amp;nbsp; For performance reasons, it is better if you rely on a cross-domain file being present, however if this is not an option you can use widget.newHTTP() and widget.newRSS() to create loader objects that will proxy your data in an accessible domain.&amp;nbsp; Both of these functions work in a similar manner, but newRSS() is meant for loading RSS feeds, and supports authorization.&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;
&lt;textarea name="code" class="jscript"&gt;
var rss;
import yourminis.api.IWidget
var widget:IWidget;
addEventListener("widget-loaded",onWidgetLoaded);
function onWidgetLoaded(evt:Event) {
	widget.initWidget(300,250,0x000000);
	widget.debugMode = true;
	rss = widget.newRSS(); //create the rss loader
	rss.addEventListener(Event.COMPLETE,onRSSLoaded); //an event that is fired when
	//the load is completed
	var myurl = "http://feeds.feedburner.com/yourminis";
	rss.load(new URLRequest(myurl)); //load the url
   
	//if you wanted to load a feed that required authorization, you would do the following:
	//rss.loadRSS("myURL","myUserName","myPassword") where
	//"myURL" is a string containing the URL you wish to load
	//"myUserName" is a string containing the username to log in with
	//"myPassword" is a string containing the password to log in with
}       
function onRSSLoaded(evt:Event)
{
	var loader:URLLoader = URLLoader(evt.target);
   
	namespace dc="http://purl.org/dc/elements/1.1/";
	namespace content="http://purl.org/rss/1.0/modules/content/";
	namespace geo="http://www.w3.org/2003/01/geo/wgs84_pos#";
   
	var rssxml:XML = XML(loader.data);
   
	for each (var item:XML in rssxml..item) //parse out each item in the xml feed
	{
		widget.debug(item.title); //print out each title to the debug console
	}
}
&lt;/textarea&gt;
&lt;/p&gt;&lt;/div&gt;
</content>


    </entry>
    <entry>
        <title>Debugging</title>
        <link rel="alternate" type="text/html" href="http://devblog.yourminis.com/2009/02/debugging.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1685980/entry_id=62324188" title="Debugging" />
        <link rel="replies" type="text/html" href="http://devblog.yourminis.com/2009/02/debugging.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-62324188</id>
        <published>2009-02-03T13:30:07-05:00</published>
        <updated>2009-02-04T00:07:06Z</updated>
        <summary>There are many parts to our API that you might not know about unless you were looking for them. We will be posting code snippets regularly to help expose some of these features. [NOTE: you can find out more detailed...</summary>
        <author>
            <name>Gavan Woolery</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Tips &amp; Tricks" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://devblog.yourminis.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;There are many parts to our API that you might not know about unless
you were looking for them.&amp;nbsp; We will be posting code snippets regularly to help expose some of these features.&lt;/p&gt;&lt;p&gt;[NOTE: you can find out more detailed information about any of these functions in the recently updated &lt;a href="http://www.yourminis.com/developers/docs/as3/index.html"&gt;online documentation&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;Most web developers recommend using &lt;a href="http://www.mozilla.com/en-US/firefox/"&gt;Firefox&lt;/a&gt; with &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;Firebug&lt;/a&gt; for debugging,
as there are not many good alternatives for debugging in Internet
Explorer. You can print out messages to your browser's debug console using widget.debug().&amp;nbsp; This works in a similar fashion to the "trace" command in Flash CS3/4. To view traced messages in Firefox, click the Firebug icon in the lower right corner to bring up the console, Click the check mark next to "Allow Console Logging" (if its not already checked), then click on the console tab to see the traced messages.&amp;nbsp; Alternatively, you can use widget.alert() to bring up a javascript-style alert box directly into your widget.&amp;nbsp; Widget.debugMode must be set to true to see output in the console -- this is useful because you can set it to false to hide all of your debug messages once your widget is ready for production.&amp;nbsp; Note that you may encounter a bug when using older versions of our API that would prevent you from compiling when referencing the "debugMode" property, so make sure to grab the latest release &lt;a href="http://www.yourminis.com/developers/resources.aspx"&gt;here&lt;/a&gt;.&amp;nbsp; Examples of both the alert and debug functions below:&lt;/p&gt;
&lt;p&gt;
&lt;textarea name="code" class="jscript"&gt;
import yourminis.api.IWidget
var widget:IWidget;
addEventListener("widget-loaded",onWidgetLoaded);
function onWidgetLoaded(evt:Event):void {
	widget.initWidget(300,250,0x000000);
	widget.debugMode = true; //allow debugging to appear
	widget.debug("Hello, debug console!"); //goes to debug console
	widget.alert("Hello, alert box!"); //pops up an alert box
}
&lt;/textarea&gt;
&lt;/p&gt;&lt;/div&gt;
</content>


    </entry>
    <entry>
        <title>Introducing the Yourminis Toolkit</title>
        <link rel="alternate" type="text/html" href="http://devblog.yourminis.com/2008/08/introducing-the.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1685980/entry_id=54204810" title="Introducing the Yourminis Toolkit" />
        <link rel="replies" type="text/html" href="http://devblog.yourminis.com/2008/08/introducing-the.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-54204810</id>
        <published>2008-08-15T00:26:05-04:00</published>
        <updated>2008-08-15T04:26:05Z</updated>
        <summary>The Yourminis Toolkit is a collection of code (namely, classes) that consists of components and utilities which will help speed up your development time in Flash. Currently, there is only one component in the toolkit (a button class), but there...</summary>
        <author>
            <name>Goowy</name>
        </author>
        
        
<content type="html" xml:lang="en-US" xml:base="http://devblog.yourminis.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;The Yourminis Toolkit is a collection of code (namely, classes) that consists of components and utilities which will help speed up your development time in Flash.&amp;nbsp; Currently, there is only one component in the toolkit (a button class), but there is also the component foundation class (which all components in this toolkit extend), as well as a generic style class used to handle styles for all future components.&amp;nbsp; All of the components are currently classes within .as files, so to use them you need only add the component set to your classpath.&amp;nbsp; Note that this component set can be used independently of the Yourminis API, although future components may integrate with functions available in the API.&lt;/p&gt;

&lt;p&gt;You can view a demo of the button class &lt;a href="http://blogger.goowy.com/yourminis_developer_blog/demo.html" target="_blank"&gt;here&lt;/a&gt;.&amp;nbsp; The top button is a normal button, the bottom button is a toggle button.&amp;nbsp; If the bottom button is toggled, the top button outline will change in size.&amp;nbsp; The buttons demonstrate the flexibility of the style class - virtually any property can be changed or tweened.&lt;/p&gt;



&lt;p&gt;To get the files for the toolkit, sign in (or sign up, if need be) to our Google Groups page located &lt;a href="http://groups.google.com/group/yourminis" target="_blank"&gt;here&lt;/a&gt;. Then navigate to the files section and download &amp;quot;components.zip&amp;quot;.&amp;nbsp; Extract this zip into the folder pointed to by your Flash Actionscript 3.0 classpath.&lt;/p&gt;

&lt;p&gt;The button class has several advantages over the default button component provided in flash:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;It is much smaller (less than 5k!)&lt;/li&gt;

&lt;li&gt;It is easier to programatically customize and deploy&lt;/li&gt;

&lt;li&gt;If you are using multiple buttons, you can use a single set of Styles to manage all of them.&lt;/li&gt;

&lt;li&gt;The classes are extensible - all of the code is exposed to you for you to modify as you wish.&lt;/li&gt;

&lt;li&gt;When the button changes state, the visual styles are automatically tweened -- that means that they smoothly fade from one style to the next.&amp;nbsp; Alternatively, you can set the defaultDelay property to &amp;quot;0&amp;quot; on any component to make the transition instant.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;Here is a breakdown of the current classes:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;ymtoolkit.utils.Style (The style class which controls the visual styles of all components in the ym toolkit)&lt;/li&gt;

&lt;li&gt;ymtoolkit.components.YMComponent (The base component class)&lt;/li&gt;

&lt;li&gt;ymtoolkit.components.YMButton (A simple, styleable button class)&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;You will notice there are some empty folders in the toolkit - these are for future use.&lt;/p&gt;

&lt;p&gt;The code is free for you to use in any project without any kind of licensing or fees - although it would make us happy if you built your project on our Yourminis Platform ! :)&lt;/p&gt;

&lt;p&gt;All of the functions, variables, and classes are commented in the toolkit, but full documentation will be coming soon.&lt;/p&gt;&lt;/div&gt;
</content>


    </entry>
    <entry>
        <title>The yourminis developer community is live!</title>
        <link rel="alternate" type="text/html" href="http://devblog.yourminis.com/2008/07/the-yourminis-d.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1685980/entry_id=53058860" title="The yourminis developer community is live!" />
        <link rel="replies" type="text/html" href="http://devblog.yourminis.com/2008/07/the-yourminis-d.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-53058860</id>
        <published>2008-07-22T06:22:58-04:00</published>
        <updated>2008-07-22T10:22:58Z</updated>
        <summary>The yourminis developer community is live! Make sure to visit our new discussion group designed specifically for our developers: the yourminis Developer Network. Join now and get involved! Please feel free to leave your feedback on the changes, or anything...</summary>
        <author>
            <name>Jeremy Suriel</name>
        </author>
        
        
<content type="html" xml:lang="en-US" xml:base="http://devblog.yourminis.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;The &lt;a href="http://www.yourminis.com/developers"&gt;yourminis developer community&lt;/a&gt; is live!&amp;nbsp; Make sure to visit our new discussion group designed specifically for our developers: the &lt;a href="http://groups.google.com/group/yourminis?hl=en"&gt;yourminis Developer Network&lt;/a&gt;. Join now and get involved! Please feel free to leave your feedback on the changes, or anything else you would like to see integrated with the site. We are looking forward to building a better developer community with you!&lt;/p&gt;&lt;/div&gt;
</content>


    </entry>
 
</feed><!-- ph=1 --><!-- nhm:from_kauri -->
