Saturday, March 31, 2007

Interface and data views

I've dressed up my design a little, just to give my project a bit of design. I've also added a few pages that outline other problems that I may try to solve. For the final object of this project, I may show how data can be displayed in a few different ways. I've used the Drawing API to create "map tacks" on each county (see page 2). This might be useful to add another layer of information on top of a colored map.

Here's the latest iteration: map_pages

I'd also like to point out, that it appears that I've achieved almost all of the concept notes I outlined three weeks ago. I do need to review the accessibility requirements and find how those fit in. I do see using the output area as a text-equivilant to the visual data displayed on the map. I would like to see if I can make the captions accessible for text-readers, but I'm not sure how that will turn out since these are loaded dynamically. It would be sweet to learn a few new accessibility techniques.

Friday, March 30, 2007

The worst problem

I find myself at a new "stumping" place. Essentially, I've created code that separates the county number/name from the magnitude. These are being fed as 2.5 -- where the first number represents a particular county and the second is how many times that county appears for that topic. My code splits the values at the ".", translates the first number into a county name (which is displayed in the output area), and then colors the county movieclip according to the second number.

So, while my code appears to be splitting everything up and spitting out the right information in the right place, it's cutting a number of the topics' information off. This is evident in the "undefined" variables that are showing up at the end of some of the topics' output.

I have no idea what is going on with this. I'll have to dissect the code and try to back up enough to a place where it does work correctly. Lucky for me, I'm saving this iterations and can check to see if "map_options2" had the same problem.

--

"map_options2" is doing this to some degree, although not in a matching manner. This is frustrating. All I can tell so far is that somehow my loop to determine the counties will only go so high, per topic. Each topic is cutting off or showing different numbers of items. It's possible I've reused a variable by accident, or called the wrong array. I'll have to check.

I'm also contemplating putting my variables together in a more compact manner. I'm having serious issues with the titles that have commas in them, versus the commas I need to separate my values. I might be able to fix this if I can get my program to recognize whether the surrounding characters are numerical or not. At this point, I feel like my actionscript for this is growing out of control and a bit bulky for what I'm attempting to accomplish.

--

It's been a few frustrating hours now. I've run a lot of tests to try to isolate my problem. I've found out that my link on the topic name has the right content, but somehow it's just not passing through to the next step. Some topics pass all of their information, while others get truncated.

I just looked up the array property ".length" and see that this is used to determine how many characters are in a string. I'm thouroughly confused now, because I think I've been using it to determine how many nodes I have in my array. But, it seems like this has been returning the correct information in some instances. Needless to say, this is aggravating.

I will note that I've been referring to the chapter on "strings" in my actionscript book, for probably the past few weeks. I'm turning to the array section now. I *hope* that there will be an answer for me! Otherwise, I may determine to abandon this aspect.

--

9:54 - still struggling, although I've taken a long break! I think that I've figured out more of the problem, although I still don't know how to fix it. Essentially, I'm using "asfunction:" to pass variables when a topic is chosen. This feeds the variables to a selected function that expects a certain number of variables (1) in it's format. Since all of my data is comma-delimited... it's totally freaking out the function. I honestly can't see a method around this. I'm thinking that if I can swap out the comma for another character when the variable is passed, that this would work. I can't take the commas out of my external AS -- I've tried and broken the file on that side in addition.

Now it's me versus the machine. I think I could give this up, but I've been taken in by this problem. At least I'm learning more about scripting, so that's good. For every mistake I make, I learn how NOT to do it!

--

11:42 - Success! And relief, now I won't have to think about this particular thing anymore. I might try not to touch the map for a while and work on some other projects.

Here's the final for today: map_options_mag

What's the difference? Ah-ha, the user would never know the difference, but I do. The data is complete, no longer truncated. I ended up passing a single, relevant number and then using that number to call up the right array. I've discovered, through blood-sweat-and-tears, that there is a limit to the characters passable per string -- atleast in the context that I was doing it.

The counties on this map also link to the Impacts database. It's not relevant to the topic, yet. It is forming a new URL on the fly though, so that's cool.

I need to fix the rollover buttons so that the counties return to the right color when you roll-off.

I can't do any more today! I think I'm going to take a break. At least for a day.

--

I just had a thought. I wonder if this would be easily translatable to other political maps? If I can get the basic mechanisms down... it just might be. That would be a neat expansion.

Displaying magnitude

I can cross off another to-do item from my list, the idea of showing magnitude -- or the number of times a particular topic has been entered by a county. While this is a cool idea, I don't think it's necessarily relevant to the information I'm displaying. This kind of display would be more appropriate to show the importance of a feature, or indicate population and reoccurrence -- that kind of thing.

Here's the file in-progress: map_options3, this uses a different AS file countyDataMag

Thursday, March 29, 2007

Map + variableTest = mixed results

I've had some level of success combining my experiments today. First, I've figured out how not to show the first item in the topic-specific array (improvement on variableTest) and have also associated all of those numbers with the right counties. The working result can be seen here: variableTest2

I've also had some success combining this with my last map iteration (ga_flashMap4). It's doing something, which is good. I'm amused that I've turned all the selected counties black. See the result: map_options Choose an item from the scrolling menu at right. This is funny because I keep turning everything black on my first attempt. I don't think I know why I keep doing this, although I've been able to fix it so far.

My next steps will be to make the counties turn the color I've assigned them and also to reset the map for each item chosen. It's good to see this coming together!

Finally, I've learned that my movies won't do anything if I don't also upload my external actionscript file.

I've fixed the county coloring issues. It is now coloring the chosen counties blue (I had a syntax error in my AS) and resetting the map when a new topic is chosen. See: map_options2

It would be interesting to experiment with colors if multiple topics are chosen, showing how topics overlay. Also, it may be possible to color the counties relevant to how often this topic has been a focus of Extension work.

Now my next step will be to produce some result when a user chooses one of the counties. For one purpose, this map is intended to be a visual interface to our state database for college Impact statements. I have the right variables that I need to pass, I just need to connect the buttons to a "getURL" action.

Desk Crit #2: HueiHsien

Designer: HueiHsien Liu
Project: Epidemics and Pandemics
Project URL: http://lhh0418.myweb.uga.edu/6200project/direction.htm
Reviewer: Emily Pitts
Review date: 3/29/07

On March 29, HueiHsien and I went through a few of her animations in-progress. I talked to her about improving the quality of graphics for her animations and showed her how to make edits in Fireworks. The primary crit at the time was that her graphics were becoming very bit-mapped when she zoomed in on them. This could be fixed by downloading higher-quality images. She also was working on modifying an existing graphic to animate virus encapsulation (something like that). We talked about editing her graphics to be flat consistent colors so she could add modifications to them without having to worry about matching gradients and other special effects. We also ran through the movies a number of times to look at sequencing and transitions. Instead of zooming in on the person's stomach and cutting to the viral cell view, I suggested that she zoom in on the person's hand and then transistion to the cell view. This would make a much smoother transition both visually and mentally. Since the cell is pink, it would blend in well with the skin color. As it was, it seemed like the virus had to be transmitted to the person's stomach! We also talked about other transitions and various ways to present her content.

Week 4) Design approaches

This title has a dual meaning as I reflect on this past week and look towards my next goals. One, what design am I approaching? I’ve accomplished a variety of goals and see that I have a good bit of work to go for a decent presentation in the Studio dress rehearsal, one week from today. So, in that sense, design is approaching! It’s time for me to pull a number of my isolated concepts together into one cohesive product, as well as shining it up so it doesn’t look so prototype-ish.

The second connotation of this title is exploring my own design approaches, as in, my approach to solving the problems I’ve laid out. In Footholds for Design, Gal describes a rock-climber as a metaphor to the design process by relating the climber’s choice of footholds on a path to a designer’s choices and accomplishments towards a goal. Each foothold grounds the climber/designer as the next step is sought, attained, or abandoned. I definitely can relate to this as I develop my project in bite-sized pieces. My approach is sometimes tedious and when I view all the files I output, it seems a bit excessive. Nonetheless, as a professor of mine taught me years ago -- start simple and make it work. This mantra carries me through. For every change I make, I usually create a new file. In that way, I can always go back and see what the difference was between the two. This creates many go-to points (footholds) in my developing project that I can return to if I abandon the successive iteration or decide to pursue a different route with a future problem. By doing this, I create a million files that, when observed much later after completion, are hard to tell apart! This time, I’m using this journal to keep me on track, at least for the major decision points and concept proofs.

I also can relate to the concept of the computer as an image foothold. I’ve been mulling over how to introduce a number of items for the user to choose from, essentially trying to figure out how to develop an interface for the map. In collecting my data, and looking for a solution to manage the data collected, I came across two items that have inspired me. First, the data that I’m using comes from a database that currently has a user interface. For the user to interact with the data, they must make choices from a number of form lists. I know that I can dynamically create some sort of form action in Flash, and was considering using the duplicateMovieClip action to create a drop down menu. When I try to think of accomplishing this, however, I know it is a daunting task that I don’t think I am up for at this time. I reviewed an older project of mine, the SBOF CD project that populated dynamic text fields with HTML formatted text. The crucial part of that solution was the ability to call Flash functions with a link. After running a few tests, I think this is my solution. I can control the information in the dynamic field and create a function to appropriately control the linked item. Plus, this has a scrolling feature, which will help maximize my file's visual space.

At this point, I have a few more concepts to test and then it’s time to bring it all together. I’ll try to keep up with my progress over the next week, to add more to my personal design footholds.

Project testing this week:

References:
Gal, S. (1996). Footholds for design. In Winograd, T. (Ed.), Bringing Design to Software (pp. 215-227). New York: Addison-Wesley
 

Wednesday, March 28, 2007

Importing external data

I've imported external data that my coworker was kind enough to glean from a company database today. I feel better working with real information than trying to "imagine" what my data might look like. So, I have a huge set of arrays in this file: countyData.as. Essentially, I've collected a list of county ids for a large number of topics. At the bottom of this AS file, I have all of the topics listed in a master array.

So, what can I do with this kind of information? Eventually, I'll use this info to populate specific items in my GA Flash Map. Most likely this will be some sort of button mechanism that, when chosen, will highlight the associated counties on the map.

For now, I'm back to testing, to see if I can get my functions working correctly. You can see my test file here: variableTest.html.

The actionscript on this file first imports "countyData.as" -- my external data. Then I load a function "showOutput" that will populate a hidden output area when a text button is selected.
#include "countyData.as"
function showOutput(b) {
outputArea.htmlText = b;
}

I populate the contentArea (in the blue box) with HTML formatted text here. This is running through my arrays in the external file and listing out the first item in each sub-array of "topic". In addition, this code ignores any arrays that do not have counties associated with it.
myText ="";
p=0;
while (p<topic.length) {
q = topic[p];
if (q.length>1){ // checks for topics with county data
myText = myText + "<u><a href='asfunction:showOutput," + q + "'>" + q[0] + "</a></u><br>";
}
p++;
}
contentArea.htmlText = myText;
trace(myText);

The HTML formatting allows me to easily add a function as a link. I find this is easier to control and predict than creating buttons on the fly (like attempt last week with the multiple choice file). So, the link calls the function "showOutput" and loads the text from "q" into my hidden output area.

This script works my scroll bars.
contentArea.scroll = 0;
if (contentArea.maxscroll<=1) {
myScrollBar._visible = false;
} else {
myScrollBar._visible = true;
}

My next step involves cleaning up the text that is associated with my "showOutput" function. Essentially, I want to only pass the county IDs, since these will be used to color the map.

More to come!