Recently, for unknown reasons, starting up Eclipse gave me a nasty screen of errors, starting with: JVM Terminated. Exit Code=-1
I've been using Eclipse and FDT for years, and this was the first time I've seen that so was stumped for a bit. Doing a search, gave numerous people running into similar problems, but frequently the error code was different, I'm not sure if "Exit Code =1" is a legitamate error or search engine indexing '-1' as '1'
What did work initially was removing the eclipse.ini, but then there wasn't enough memory being allocated for FDT (eclipse.ini has optional arguments '-Xmx' to tell the Java Runtime how much memory to save
Digging it turns
-vmargs was able to turn on/off the error. But then FDT wouldn't have enough memory to run
Having had the Java runtime recently upgrade itself to 1.6, thought that was most of it. In the end, along with some other nasty issues (Explorer.exe taking 50% of the CPU and taking down any process)...I just ended up reinstalling Windows....joy.
It's working now, it turns out that the first param needs to be in front of the others, and I've had stability issues when the value is high (e.g. MaxPermSize=512M). Even though I have 3GB Ram, something between the JVM and Windows doesn't like it.
-XX:MaxPermSize=256M
-vmargs
-Xms40m
-Xmx768m
June 8, 2008 at 1:45 am and Filed Under flash |1 Comment
LocalConnection is a pain in the but, been using it on a Desktop application, and so many hurdles.
Error #2044: Unhandled StatusEvent:. level=error, code=
Solution: From Zack at the awesome crew creative. "The unhandled Status error on localConnection is coming from a failed "send()" when the client is not recieving. You need to add a listener for a StatusEvent. try catch won't do it because the error is asynchronous.)". Thanks Zack!
Error #2044: Unhandled ErrorEvent Security localConnection (search)
Solution: use lc.allowDomain("*") or lc.allowDomain("localhost") in testing. How to specify meaningful domains when running locally don't quite make sense to me yet.
ArgumentError: Error #2082: Connect failed because the object is already connected. (search) Solution: use try catch around the lc.connect attempt.
A pre-beta version of the codebase has been checked in to googlecode. While some core parts are solid, there are still some major refactorings planned which I'm working hard on. Please follow this instructions here to check things out, and ping me if you are interested in contributing to the MIT licensed project.
One of the requirements for productivity recommended by GTD and 4HWW is separating and scheduling personal and business life. This can scale even apply to roles, especially in small companies. As if your company scales in predicatable ways, it may not be you doing wearing all the hats. One preemptive strategy is using multiple accounts. With email this is easy, for voice and IM, I like to use Skype with multiple logins, which is covered here.
Some potential roles are IA, PM, TechLead, QA, etc. At which point in time a fulltime resource can be found it's easy to hand them the user and password to take over.
include is a handy little utility for separating script and graphics when classes are overkill. This opens up to the possibility of source control versioning, allowing more than one team member to work on it, and using more dedicated script editors other than the Flash IDE. The syntax is easy,
include 'yourfile.as'.
Where yourfile.as (or .whatever) has whatever you had on the timeline pasted into it. Note that *doesn't* contain any class files, for that 'import' is used.
This evening, on a new pc I ran into the error 1068 which is cryptic.
Turns out the error was simple, on XP, the file extensions weren't turned on, so that renaming files e.g. yourfile.as, was actually "yourfile.as.txt" turning the file extensions back on is through Windows Explorer, Tools>Folder Options> uncheck "hide extensions for known file types"
Recently upgraded from FDT Professional to FDT Enterprise. I was excited to see that AIR is now supported. Of course it's been out for several months, just haven't paid any attention to it. Updating since a few things have changed since AIR went 1.0
unzip the Flex SDK to someplace reasonable e.g. C:\CodeProjects\AS3.0\Flex3.0.0.47\
Go to 'Window>Preferences' then click on the 'AS3 Core Libraries' Tab, then the 'Add' button
This will get you to the Define a New Path Variable
Finally you'll want to update the Core Library for the package you are using via right clicking over the project and selecting 'properties' then the 'Change Core Library' button on the bottom right:
After you select the Core Library you created earlier, it will update and rebuild all the projects, and here's what it will look like after:
I typically add the CS3CoreComponents too, as I do lots of project that are Flash First instead of Flex Based.
modify the HelloWorld to match whatever you are using.
Open up the Build_AIR.xml for editing
change the 'sdk_dir' to point to the Flex3 path on your harddrive you downloaded earlier,
change the 'app_name' to whatever you called your app, e.g.
Then follow steps 8 and on, to build the swf and package it for AIR, if successful, you should then get something that looks like this. Congratulations!.
I develop RIA and games, where I find that webpage methodologies break down, and use several terms/tools in the early phases to capture various facets of the system. Lately on the IxD mailing list there has been some confusion as what is what so here's my list:
Wireframe - a single screen as output by IA's, typically representing one state at a time, a skeleton to serve as a container for available copy and for graphic design to flush out as 'Comps'
Sitemap - a rought organization of wireframes into sections and navigation between pages.
Storyboard - sequence of wireframes + graphical interaction (mouse clicks, drags), typically a one way trip through a system, trying to get buyin from the entire team. Can be expansive in covering a wall, often required in team discussion to jump around and interrelate, or played back in a video like format. Frequently the beginning of a usecase/workflow.
Comps - aka composition, a single screen as output by graphical designers based on Wireframes, and provided copy.
Interactive Wireframe - aka clickthroughs, wireframes stacked in time,selectively hiding an showing things, to help flush out the interactive architecture. As somethings have to be played to be understood.
Mockup - a high graphic fidelity, but limited in interactivity similar to a theme park ride. Great fun on the ride, but get a few feet off the track and the whole thing breaks down. A version that faithful covers all the use cases states to be conveyed, can also be called a simulation.
Statemap/Lifecycle - a heirarchical statechart of all system states and events between them, frequently having links/thumbnails to various fidelity comps. Like a subway map it should encompass at varying levels of detail the entire system of states relevant. I find this missing in most designs. Screw this up then everything is already broken. Been compiling a library of common LifeCycles (user registration, media players), as I find that they are constantly rediscovered, and getting them right..can be tricky. I'll publish them as I have time.
Flow - a particular usecases/workflow across the statechart + sitemap etc.
Prototype - a typically technically driven 'spike' to answer a narrow question if something is feasible or not, or better than another scenario. typically disposable. Often using whatever is available ducktape, wood, paper + glue. Tehcnically anything that isn't building the final release meets the definition of a prototype. Thus I find it's more practical to have more specific terms (like mockup) to describe what I expect of a deliverable, what it does and what it won't do. However in the case for questions like 'can we sort 10000 items clientside, based on the dominate color' generally there isn't any other term available, so I use spike/prototype.
April 24, 2008 at 6:59 pm and Filed Under IA |Add Comment
In an ongoing series of articles on the early phases of RIA or Game project development one is likely to come across this menagerie of terms and titles:
IA - information architecture, the organization of all the data in an application into logical bundles, and a clear navigation between. The careful choosing of the right ui components to match the underlying dimensionality of the data (e.g. a grid for multicolumnar) and single/multiple selection.
IxD -interaction design, the consideration of the bi-directional communication of a user, armed with a mouse joystick and keyboard 'talking' with your application to collaboratively achieve a desired goal.
UCD - User Centric Design, focusing on a particular end user capabilities and needs first, rather than technical merit, or business concerns first. It should focus on current or designed target audience, and often leads to workflows optimized to those User profiles, e.g a 7 year old editing a photo, has different requirements than an adult.
UX - user eXperience, the summation of good copy, good graphic design, good motion design and smooth workflow, minimizing boredom, confusion.
PX - player eXperience, the special considerations of user experience in games., or what makes games fun, typically involving [1] and progressive dynamic difficulty adjustment [2]
XD - eXperience designer, can mean various things, typically someone skilled in blending a workflow (the minimal path to achieving a particular goal) with a narrative/plot to make it emotionally compelling and engaging. Often this is some blend of AfterFX, and Flash, and can involve actors and writers to script the experience.
Here's a paraphrase of how the IxD list views the blurry overlaps:
Information and Content are the nouns,
IA is the grammar,
IxD are the verbs,
Graphic Design are the adjectives,
Your app is the poem
Experience Architects are the poets....
April 24, 2008 at 6:45 pm and Filed Under IA |Add Comment
Gageing interest for a free class on rapid prototyping in Flash in the Los Angeles area. Flash can be a powerful ally in developing mockups, prototypes, it's easily integrated with
graphics, video, images, and animation, yet I run into a large number of IA and IxD'er who think the tool isn't for them (!).
For those of you not into the acronyms.
IA is Information Architecture, early stage breaking applications into wireframes and copy.
IxD is Interaction/Interactive Design, - starting to break away from page metaphors, and start getting into applications, workflows.
XD is Experience Design,- merging workflow with narrative, and a cinematic, broadcasty feel.
UX is User Experience - similar to User Centric Design, making sure that the information experience however delivered is gender, culture, and workflow appropriate.
Here's what I'm contemplating:
Flash basics, if you use Visio, you have most of the skills already,
how to create mockups using basic animation, these are very useful in group meetings
whiteboard sessions and storeboards converted to interactive wireframes or low fidelity prototypes.
illustrator and photoshop high fidelity prototypes.
In this article we cover how to get flash.text.TextFields HTML anchors/hyperlinks, to call actionscript functions, how to use CSS to style the up, over/hover and down/active and [UPDATE] visited states similar to hyperlinks in normal html.
The applications of this are numerous. Perhaps clicking a hyperlink will deeplink into your Flash application without navigating away, or perhaps it would open up a dictionary definition on the term.
In this example clicking on the 3 links will show in the bottom text box where the link was meant to go. This is based on the event handler receiving a flash.events.TextEvent.LINK event, as dispatched by formatting the '<a href=..' to dispatch the link event instead of the default navigateToURL.
The 'blog1' and 'blog2' links both go to the same URL, when either are clicked on both will change to the visited style. This change color requires a hack, as the 'a:visited' isn't one of the CSS tags supported by Flash. However we CAN overwrite the CSS style to display a different style, on the click. This is more complex as we have to figure out, a) are we interested in changing all links that point to that location? or b) just the one that was clicked on?. Keep in mind that this is a hack, and differs from the way browsers behave the links won't persist past that flash session, or across different TextFields unless you code it that way.
In a future article I'll discuss how to clean and process HTML, and replace the links with internal flash link's if you are using CMS'd, progressive enhancement websites, with Flash as the RIA style/presentation layer. So the same HTML will work as expected when in HTML only site (e.g. for search bots) or in the Flash only.
import flash.text.StyleSheet;
import flash.events.TextEvent;
var style:StyleSheet = new StyleSheet();
var hover:Object = newObject();
hover.fontWeight = "bold";
hover.color = "#00FF00";
var link:Object = newObject();
link.fontWeight = "bold";
link.textDecoration= "underline";
link.color = "#555555";
var active:Object = newObject();
active.fontWeight = "bold";
active.color = "#FF0000";
var visited:Object = newObject();
visited.fontWeight = "bold";
visited.color = "#cc0099";
visited.textDecoration= "underline";
style.setStyle("a:link", link);
style.setStyle("a:hover", hover);
style.setStyle("a:active", active);
style.setStyle(".visited", visited); //note Flash doesn't support a:visited
html_txt.styleSheet = style;
var htm:Array = newArray();
htm.push("
<p align="center">Example of HTML hyperlinks calling actionscript in AS3.0
");
htm.push("
Click to visit <a href="event:http://www.TroyWorks.com">home</a> ");