Our Blog

We made a Reader for MXNA in ColdFusion using only Flash Forms. But wait, it's not only an MXNA Reader, you can also read Full As A Goog :)

You can jump to see the application or continue reading the details. (A screen shot in case your screen resolution is less than 1024x768) Launch MXNA Reader

This application is an example of how you can consume Web Services via ColdFusion and show the data in a cfform via Flash Remoting. But as always, the beauty is in the details:

The Application Flow

There is a central panel (the green one) that has a DataGrid. When the application loads, this grid gets populated with the most recent post from MXNA. This data arrives from the server as normal, like any other flash form in a single query. When an item is selected in the grid, a preview of the post is shown in the bottom panel.

There are also six orange panels placed on both sides of the Entries panel that allows you to choose what data you want to retrieve from the server (by category, by last searches, favorites, etc). Again, those panels are populated like a regular cfform (no remoting so far). But when you make a selection in any of those panels, a remoting call is made and the data received populates the grid with the entries.

Search and Filters

Search

The search is very simple. You can search for any keyword in the MXNA database, choosing to get the results sorted by date or relevance. The call requesting the data is made via remoting.

Filter

In addition, you can manipulate the records locally, filtering the results. The filter is performed on the client, and allows you to filter the currents post in the grid by a keyword or phase. It has the possibility to filter the grid matching or ignoring the case. It also allows searching in the title, content or both. If you are wondering why we have the "Apply Filter" button if the filter is executed as we type, the answer it that it facilitates reapplying the same filter without retyping the keyword when new data comes from the server.

Pageable records

Pages

This is a small feature but it's worth mentioning. Because MXNA and Full as a Goog return a maximum of 50 records on each request, we needed to implement a navigation to go through all the records (we actually just copied the way MXNA shows the pages). But the question was how to implement a navigation that changes dynamically depending on that data that arrives. We opted to use an old feature from flash (asfunction) that uses a link to call a function in an html field. We made something like this:

var page = 3;
<a href="asfunction:_global.goPage,'+ page +'">'+ page+'</a>

Loading records animation

Animation

We wanted to show the user that something was loading when they requested data, so we thought that the best way was to show a little animation. We just hide and show the animation with a binding when the data arrives.

Opening the hidden panel

I think this is my favorite feature and I believe that we got it right. Sometimes it's difficult to show everything in one screen and we end up opening popups for each new thing that the user needs to work on. In that way, the content gets behind the popup. We could also use tabs, and the content would get on another tab making it difficult to view everything at the same time. A fluid layout could be a solution and that's what we did. Technically, what we do is to use set interval and resize a navigatorTab using some bindings.

Languages

Languages

Because MXNA is aggregating multiple blogs from different languages, we provide a list of languages to choose from. You can select as many as you want if you don't select anything we provide the default (English). Technically, this list is a repeater inside a cfformgroup type tile. When you make a selection, a call is made via remoting to a CFC and your preference gets stored in a cookie.

Preferences

Preferences

In this panel we provide the ability to add, remove and sort the columns that appear in the main panel. For example, you can remove all and start adding them in your preferred order. Then, you can resize the columns by dragging from their header borders. The only missing feature is that we don't store these settings (maybe next version). To make this feature, we use the method addColumn() and removeColumnAt in the grid.

Note:There is a bug in the grid component that makes it lose the data from some columns. Just refresh the grid if that happens.

Feedback

Feedback

This panel is just to hear from you, so tell us what you think, what's your impression, etc.

We use remoting to send the message to the server and it will send us an email. If you have technical questions or something that may help others, please write that in the comments at the bottom of this post because we can follow up better the conversation, an others may jump to a make a more interesting debate.

Favorites

Favorites, Drag and Drop

I also like this one a lot. This panel has the purpose of storing you favorite feeds in your local computer. And it’s easy to use, just drag and drop from the main panel to the favorites panel. Then, when you select one favorite, all posts from that feed will be shown. You can also remove them with the bottom button if you don't like it. I want to thanks Philippe Maegerman for the idea of implementing drag a drop in the cfforms, ( thanks pin :) ).

Technically, the drag and drop uses some listeners that are registered to hear a drag event. The process to store the data works using shareObject (flash feature). It's a way to store persisting data into the client, similar to a cookie, with the difference that there is no interaction with the server. Everything it’s stored on the local machine and all the process is made by flash.

In the future, I would like to add a new feature that will allow you to import and export the favorite list to facilitate the migration from one computer to another.

Look and Feel

We use CSS to skin the application. We have two color tones, green and orange, to differentiate between the main panel and the others. Because not all the styles are inherited, we have a cfsavecontent variable where we define the styles for the buttons, panels etc. This allows us to reuse the style and make all the changes in one place only.

Database and Web Services

There is not database. It makes heavy use of the MXNA and Full as a Goog web services. It utilizes most methods offered and MXNA has played nicely with our components for the most part. We did run into some problems when the case of the column names of the returned query were not consistent and we could not feed Flash the recordset directly. For speed, we cache the infrequently changing data such as category names and feeds.

Advantages

Fast Fast Fast. Yes the cfform is a RAD (Rapid Application Development). If you need to do the same thing in flash or other technology, you will need to spend a lot more time. In Flash, there is no layout manager, and you need understand how movieclips and other things work.

CFForms and Flex, on the other hand, have a lot of things already built in that will help you during development. I remember making some RIAs in the past with flash and I know that takes loooooonger.

Restrictions

Yes, there are some, and the 32k limit is the major one. We needed to do optimizations to fit all the features in those 32k (like creating _global functions to reuse). But as you see, you can still do a lot with those 32k and you’ll reach that only if your form is big.

Requirements

Minimum screen resolution: 1024x768 and Flash 7

What’s next

I think the next step is to move the whole application to Flex. Why? Because I want to add more features to it and I already reached the limit in the cfform. Flex will give us the freedom and ability to create classes, custom components and make everything more OO. I have been working in flex lately, and the tags are very similar to cfform. In that way, I think the migration won't be that hard.

Lastly

What is your favorite feature? I already told you mine :)

PS: For mike Mike and Cantrell, I would like to have two more services, a search that would allow me to search for a specific phrase like "Flash Remoting", and a "most recent" service where I can pass an array with only the feeds that I want.

MXNA Reader
Download the source

Update:We made some modifications to the Share Object. If someone created some favorites those are gone now, sorry for that :(. Now we are saving your favorites in a better place so in the future you won't lose them again.

Nahuel Foronda

Nahuel Foronda

82 Comments

  1. Todd
    WOW...i think that's all I have to say....WOW...
  2. DAMN!, this is really nice! I get really excited when i see a post from AS Fusion and this is one of them.
  3. Jim
    Neat! BTW - the alt tag on the image above says &quot;Lunch MXNA Reader&quot; :)
  4. James
    LOL Lunch, Launch, so long as it loads. What an awesome application. Good luck with the Flex. Cheers!
  5. Holly
    My mind is blown - great job!

    Thanks for blazing the trail.
  6. Peter Tilbrook
    Wow! Even MM should be impressed! Mike Nimer will be I'm sure! Brilliant stuff! Still waiting for my ISP to upgrade to MX7 so I can show off what I've been doing with Flash forms :)
  7. Geoff Bowers

    Geoff Bowers

    Hey there... what do you need from me to improve your support of Fullasagoog?
  8. Todd
    I'm still trying to figure out why I lose all binding when populating a cfgrid with Flash Remoting. It seems as if you are binding with the grid that is populated in this reader...what gives???
  9. mike chambers

    mike chambers

    &gt;PS: For mike Mike and Cantrell, I would like to have two more services, a search that would allow me to search for a specific phrase like &quot;Flash Remoting&quot;,

    Does this do what you want:

    http://weblogs.macromedia.com/mxna/webservices/mxna2.html#method_search

    &gt;and a &quot;most recent&quot; service where I can pass an array with only the feeds that I want.

    Thanks.We just added it to the to-do list.

    This app kicks *ss!!!!

    mike chambers

    [email protected]
  10. Hi Geoff,
    Thanks very much for asking me. Here is my wish list in order of priority

    1. It would be nice to have a Web Service for searching

    2. The possibility to get additional pages on the results

    3. A column with the number of clicks in the results

    4. New service &quot;get most popular posts&quot;

    5. posts by languages

    It would be great if any addition that you make are somewhat similar to MXNA

    Mike
    The method that you mentioned is the one I'm using. But I think that it returns results that match any of the terms submitted, as in &quot;term A&quot; OR &quot;term B&quot; (let me know if I'm wrong). What I'd like to have is something like this (verity search).
    http://livedocs.macromedia.com/coldfusion/7/htmldocs/00001324.htm
    Where you can have OR, AND. NOT etc.

    Thanks

    Nahuel Foronda
  11. Philippe Maegerman
    Simply beautiful, not only technicaly but also design and interface ergonomy, the effects, styles, layout, colors ...
    Karma++;
    //Philippe
  12. Steve Walker
    First let me say, this is fantastic. It is exactly what I have been looking for.

    However as a novice to AS2 and CFCs done the right way, I am having a difficult time passing arguments from the primary grid in order to populate a second grid (history). For visual reference go to http://www.clinfrastructure.com/clineng/am/newviewer.cfm

    Any insight or references will be appreciated.
  13. Todd
    I'm working on a very similar application (thanks to your inspiration) where I have a grid populated via remoting as well as a tree populated with remoting. The tree acts as a filter for the grid. The only problem I'm running into now is that my filtering is EXTREMELY slow. My grid is rather large (100 columns) - could this be the problem? Any ideas on how to speed things up??
  14. Hi Steve,
    You can access your controls from everywhere just using _roo.myControl. Or make a local reference in the _global scope for a clean access (that's what I usually do).
    To understand better the scopes in Flash I recommend you to read this great article.
    http://timotheegroleau.com/Flash/articles/scope_chain.htm

    Hi CS,
    CFForms can be accessible, but you need to turn it on. &lt;cfform accessible =&quot;true&quot;&gt;
  15. grantmr
    hi, great work. just a fyi, but i think there's a typo in the filter section - it says 'tile' when i think it's meant to be 'title'.

    love the app, can't wait to get my hands on cf7.
  16. Adam
    WOW, this brought a tear to my eye. THis has really inspired me.

    THank you...
  17. Brian Sloan

    Brian Sloan

    This is great... Work perfects for what I am doing. I also submitted a bug to MM for the 32K limit and they said they are going to fix it in SP5.
  18. Steve Walker
    Nahuel,

    Thank you. My biggest problem right now is finding the right syntax for sending a variable from the grid. This is what I have (based on the MXNA example for list boxes):

    _global.getHistory({cmemo:grid1.selectedItem.data});_global.setSelected(grid1);

    Since nothing is happening I want to make sure this part is correct.

    Thank you again.
  19. Chaz
    Nice work, I have a question, how are you getting the Stage.height.


    &lt;cfformgroup type=&quot;vbox&quot; width=&quot;165&quot; height=&quot;{Stage.height - 25}&quot;&gt;
  20. Todd
    I hate to sound like a complete Flash noob, but how do you create the sweet loading graphic? Is there a PNG file? I'd love to change the colors to match my site's theme...It's the little things that make me happy...:)
  21. Wayne
    Congrats!

    I would like to know if using remoteObject would be simple to apply instead of using webService for flash remoting. It form my undestanding that it is faster and can handle larger data packets

    Well Done again

    Wayne
  22. Steve,
    I really don't know, it's difficult to see the whole picture. I recommend you to check if _global.getHistory and _global.setSelected gets called. You can add an alert inside those functions to know that. Once you know that you can try to access your controls inside that function with a _root path.
    That should work.

    Tood,
    It's a .fla
    here you have: http://www.asfusion.com/blog/files/cfforms/loader.fla

    Chaz,
    Stage is a flash object with various properties. For more info on that view this: http://livedocs.macromedia.com/flash/mx2004/main_7_2/00001691.html

    Wayne,
    We use remoting (on the client) and web services (on the server)
  23. TheGoose

    Is it true that the user has to load a 413kb swc file to run any flash form?
  24. TheGoose

    Go to the folder: C:\CFusionMX7\wwwroot\CFIDE\scripts

    See the cfform.swc file?

    I was wondering if that had to be loaded for the form to run.
  25. TheGoose

    Go to the folder: C:\CFusionMX7\wwwroot\CFIDE\scripts

    See the cfform.swc file?

    I was wondering if that had to be loaded for the form to run.
  26. Andy Clark

    Andy Clark

    Beautiful piece of work which I am trying (along with your address book example) to use as a template for my own work
    Rather than using a webservice (or as in address book just expand on initial query) I wish to invoke a database query via a cfc when I onChange a value in a grid or combobox
    How would I go about this. And would it mean the whole page is refreshed. That is not the case in a pure Flash product but the relative ease of using cfforms makes it appealing
  27. Todd
    Andy - didn't you see the other posts on the main page of AS Fusion? http://www.asfusion.com/blog/entry/populating-a-cfgrid-with-flash-remoting should help you out. There are a few other good ones too, like populating a cfselect or a cftree via remoting with a cfquery within the cfc.

    Wondering if anyone has populated a cfselect via remoting and has been succesful in binding a grid to that cfselect (via the old bind select to grid hacks) - My cfselect is populating, but the binding is not working. All the other hard coded or straight page load query driven cfselects on the page bind fine, but the one populated via remoting is just ignoring the bind. In case your wondering, the cfc is initiated onchange of the grid row and the bind action was moved to a button so that the events don't run into each other...
  28. AndyC
    Todd
    Thanks for the tip. I have some queries which I will raise there
  29. Wayne
    Nahuel,

    Tyanl you for your response!

    I would like to know how I can setup a debugger to see what (args) are been passed to the facade.cfc. and then to the mxna.cfc to get the results requested from the select lists.

    I see that you are setting the application.mxna path and intializing a webservice.

    Is there any special criteria to set up an webservice on my dev test server to recreate a new webservice that calls my components in a webroot under a different URL. If I put the componets under the root of my app then I dont need a webservice? Yet in another URl path it does not find the Object of the webservice

    Wayne
  30. Nathan Hunsaker
    Any ideas on how to use import and store AS files in a different directory? Right now it's kind of a mess to store AS files in the application root but maybe it's a limitation of cfforms.
  31. Todd
    nathan:

    I store my as files in a subdirectory of the root and then within my cfsavecontent I include the file with the path. Example:

    #include &quot;includes/actionscript/get_data.as&quot;
  32. Holly
    Is it possible to toggle the visibility of cfform items in actionScript using a variable for the item name?

    I have a bunch of cfselects, with names like sMenu1, sMenu2, etc.

    I am using remoting to return an array of options. I'm then looping thru the array and trying to set the visibility of the cfselects like this:

    var itemObj = results;
    for (var i:Number = 0; i &lt; itemObj.length; i++)
    {
    var sName = &quot;_root.sMenu&quot; + itemObj[i];
    sName.visible = true;
    }

    This doesn't work - can you offer any suggestions?



  33. Nathan Hunsaker
    Todd- Thanks for the quick reply. It's useful to know someone else has got this working. It must be a pathing issue on my side.
  34. Todd
    Nathan:
    Are you trying to store them in a subdirectory WITHIN your root? In my example, I have a folder called includes with a subdirectory of actionscript WITHIN my root. Not sure if you can reference a folder outside of the root. Double check your pathing, it should work for you.
  35. Nathan Hunsaker
    Todd, I am storing everything in my root which is why I was confused. I'll have to double check my code to make sure something else isn't the cause.
  36. Daniel Roberts

    Daniel Roberts

    Are you actually hitting webservices on the fly or just to get the initial data? If hitting webservices on the fly, I didn't know that was possible. I attended a session at CFUnited with the creator of flash forms and he said that wouldn't be added. Anyone have info on this? Thanks!
  37. Daniel Roberts

    Daniel Roberts

    disregard my previous question...I just read the flash remoting info
  38. Brian Sloan

    Brian Sloan

    Strange problem:

    I am adding data to a table using remoting and I get the following error (from handler.onStatus): &quot;Error while calling cfc: Service app.services.facade does not have a method addData that matches the name and parameters provided.&quot; However it adds the data correctly. Here is what I am doing... In the facade file I have a addData function that looks for the arguments method (string used in switch statement to determine what function to call in another cfc) and fields (structure that hold all fields passed in). Then I have an action script function that is pretty much exactly like the one in this example to call the facade function. In my cfm file, on the click event I call the as function with following code:

    _global.addRecord({
    gridName:myGrid,
    method:'addContract'
    fields:{
    idn:selectBox.selectedItem.data,
    number:number.text,
    (etc....)
    }
    });

    Any ideas??? Is there a problem with my fields structure? I am trying to make the facade function more dynamic by passing a structure instead of individual args... Like I said it is inserting the record correctly just throwing that error... So it is running the function or the row wouldn't be added...

    Thanks,
    Brian
  39. Brian Sloan

    Brian Sloan

    got it working now... error was in the variable I was returning...
  40. Dennis Roberts

    Dennis Roberts

    a bug

    To repeat the it in the right column have at least 5 choices in the favorites select. Select the 3rd, 5th, and 1st selections. Press remove. You'll notice the 3rd and 5th selection remain.

    I used this code as a model elsewhere and was having the same behavior. I am writing a drag/drop application that allows people to move items from a datagrid to a listbox.

    I noticed in the favorites.as #include for the function _gobal.removeFavorites that these two lines might be the issue

       target.selectedIndices.sort(Array.DESCENDING|Array.NUMERIC);
    var selIn = target.selectedIndices.slice(0);

    It appears that the slice isn't necessary. It also appears the the slice is loosing the sort. After many hours of hair pulling and blaming anything else but this section of code I replaced it with

    var selIn = target.selectedIndices.sort(Array.ASCENDING|Array.NUMERIC);

    It says ASCENDING only since I had also reversed the direction of the for loop during my hair pulling session.

    Love the app. Pulled alot of different features sets into one place.

    Slightly less haired,

    Dennis
  41. Todd
    I'm messing with the drag events and am getting some weird problems...:(

    Everything works cool and I reload and the favorites are coming back in fine.

    I reload the page a little later, favorites gone...

    Anyone have any ideas??
  42. Tood
    It's strange, I use the mxna and I've never had that problem. If you can track the bug a lilte further I can try to fix it.
    Thanks :)
  43. Philippe Maegerman
    It sounds rather like a SharedObject problem.

    Right click the application &gt; settings &gt; second tab (folder) 'Local storage' &gt; Try to increase the amount allowed

    Just an idea ....
  44. Todd
    Nahuel,

    It seems like anytime I save a new version of the page to the server it wipes out any previous items held in the shared object. Even if I'm just changing the width of the cfselect and saving (not changing the AS files at all).

    I did notice one time after I saved a change and reloaded the page that the items were not displayed, however, Flash player said that my site was using 39k on the local machine...Strange, it appears that the items WERE saved but not displaying. I'll keep digging...

    Thanks!
  45. Hi Todd,
    I know what your problem is. You have an old version of the mxna.
    Replace these two methods in the favorites.as

    _global.getFavorites = function():Array
    {
       var favObject = SharedObject.getLocal('favorites','/mxna');
       if(favObject.data.feeds.length == 0 || favObject.data.feeds == undefined)
       {
          favObject.data.feeds = [{label:&quot;AsFusion&quot;, data:319}]
          favObject.flush();
       }
       return favObject.data.feeds
    }
    _global.setFavorites = function(feeds)
    {
       var favObject = SharedObject.getLocal('favorites','/mxna');
       favObject.data.feeds = feeds;
       favObject.flush();
    }
  46. with the Stage.height IE bug, how could one go about making this &quot;shrink and grow&quot; based on a dynamic stage height?
  47. Michael Brennan-White

    Michael Brennan-White

    Hi,

    I am using your code as a basis for some work I am doing at http://www.carbodehydrated.com/getajob/jsgrid.cfm.

    Login: potus
    Password: w

    In the tasks section in the top left hand corner you can click on a task (most of them anyway) and bring it up in the main window. If you click the Add A Job task the entire interface doesn't show and no error either.

    If I run the same code with cfform tags wrapped around the code the Add a Job Form shows without problem.

    http://www.carbodehydrated.com/getajob/aj2.cfm.

    Ideas about what I am doing wrong would be greatly appreciated.
  48. Dennis
    I am trying to simply put the drag and drop in a cfform type flash and have not been able to isolate all the necessary parts/functions... some help please? Also, how do you get the cfgrid to allow multiple selections?
  49. Laura
    Mark,
    the components are cached to minimize web service calls to mxna and fullasagoog.
    You will need to somehow refresh them:
    -you can restart cf
    OR
    -you can add this to Application.cfc, run the app, then remove it or comment it
    &lt;cffunction name=&quot;onRequestStart&quot;&gt;
          &lt;cfset OnApplicationStart() /&gt;
    &lt;/cffunction&gt;
  50. Joe
    This is very cool, i am especially intrigued by the 'preview' pane displaying data from the grid. I'd like to do this with my own application, but i am having problems. I tore the whole mxna appart to the bare minimum, i think im having a cache issue, but all i want to do is pull my data from the grid and display it in the &lt;cftextarea&gt; such as the example. Is there a scaled down example of something like this? Or perhaps is there a way to display data from a grid in a non-formfield?

    thanks so much!!
  51. Lachie Thomas
    Hi all,

    This is pretty amazing!!

    I would like to construct an application similar to this but have a question. The application would require some cfcharts. I remember reading on this site, I think and cannot find, that it was not possible to bring charts into cfform. Can you confirm this for me please. Or if it is possible let me know the general idea.

    Thanks so much for your time and effort in creating this site!!!

    Kind REgards

    Lachie
  52. Anthony

    Anthony

    I've been trying to do something like your page links, but I am having problems. I believe its to do with scope, but I don't know actionscript or flash very well. I'm trying to call a function from a href with asfunction. I use a formitem=script rather than an include to define the function.
    function goPage(pnum) {
       explorer.selectedIndex=pnum;
    }
    &lt;a href=&quot;asfunction:goPage,1&quot;&gt;

    Using a button with onClick the function works fine. I tried different combinations of adding _global to the front of each part with no luck. In fact when I add _global to the function the flash movie doesn't compile. What am I missing? what scope are the functions created in when using the cfformitem=script?
    I'd also like to repeat a question; is there a way to do a cfdump sort of thing in actionscript?

  53. Maegerman Philippe
    It looks like the scope is not really correct.
    I managed to get it work using _level0 as my function scope :
    &lt;cfform format=&quot;flash&quot;&gt;
    &lt;cfformitem type=&quot;script&quot;&gt;
    function goPage() {
       mx.controls.Alert.show('in ASFunction');
    }
    &lt;/cfformitem&gt;
    &lt;cfTextarea html=&quot;true&quot; value=&quot;&lt;a href='asfunction:_level0.goPage'&gt;Hello World&lt;/a&gt;&quot; name=&quot;TA&quot;/&gt;
    &lt;/cfform&gt;

    As for a cfdump tool, there is no such thing in Flash/Flex but I have built a little helper that you can add in your cfforms and allow you to inspect your flash movie: http://cfpim.blogspot.com/2005/04/tracer-for-flash-cfforms.html

    Regards,

    Philippe
  54. Chaz
    Am I able to position the form using the X,Y position.
  55. Marcus
    Hi Guys,

    I have downloaded the mxna reader, howvever after installing and following your instructions all i am getting is a http 500 error can someone help with this please

    Timsy
  56. ScareCrow

    ScareCrow

    Hi Guys,
    Great work as usual.
    I'm trying to use the add/remove grid column code you have in this app, but with some changes.
    I have 4 columns I need to add/remove, 3 checkboxes and one text.
    My app has a menu that displays the grid, depending upon the selection, I remove the 4 columns and then add the column(s) I need for the section. This all works well, except for one problem.
    One link (link 1) displays 2 checkbox columns
    One link (link 2) displays the text column
    One link (links 3)displays 1 checkbox column.

    When I from link 1 to any other link all works fine. If I go from any other link to link 1 all works fine. But if I go from link 2 to link 3, the text false/true is displayed and not a checkbox. If I go from link 3 to link 2 a check box is displayed and not the text.

    Any insight on this ?

    Ken
  57. Saikumar

    Saikumar

    Hi,

    This site is a great site for FLASH + FLEX + Coldfusion.

    I want to know how we can increase the size limit of flash forms from 32KB to 64KB..

    Is it any hardware related to Cf server operating system or can we change in CF server configuration files..

    Regards,

    Saikumar
  58. baqar
    Great work done!!!!!!!!!!
    I am working on remoting component can you help me?
    how can i call a service method by a string variable.

    e.g.
    var myvar:String=&quot;getname()&quot;

    is this possible or any alternate of the following?

    service.myvar
  59. Jedale
    Does anybody know how to display and hide cfgrid columns based on checkboxes by not using an outside .as file? (by using script functions possibly...)

    I can't get my code to work either way.

    -Jeff
  60. Siamsa
    This is so awesome! A stunning application.

    Just one question: I'm kinda new to the whole Flash Forms thing, and I was hoping to implement the showing/hiding of areas the way you do it here. I've tried looking through the code, however, and just got hopelessly confused. Any chance I could get some advice about what I need to copy over and how I'll need to modify it? It would be greatly appreciated.
  61. Harkirat

    Harkirat

    WOW this rocks !! I especially loved the resize effect!
    I plucked out the resize code and tweaked it a bit.
    Here it is incase anyone is interested!

    <cfform format="flash" width="700" skin="haloOrange" onLoad="resizeEffect();">

    <cfformitem type="script">

    function resizeEffect()
    {

    _global.resizeCtl = function(obj)
       {
          if(_global.id != undefined) clearInterval(_global.id);
          var interval = 100;
          var resize = function(obj)
          {
             var t = obj.t;
             var c = obj.c;
             var b = obj.b;
             var d = obj.d;
             obj.panel.height = -c *(t/=d)*(t-2) + b;
             if(obj.t >= obj.d)
             {
                clearInterval(_global.id);
                _global.id = undefined;            
             }
             obj.t += interval;
          }
          _global.id = setInterval(resize, interval, obj);
       }

    }

    function resizeAction(ctlName:Object,ctlHeight:Number)
    {
    if(ctlName.height != ctlHeight)
    {
       var obj = {b:ctlName.height, c:ctlHeight - ctlName.height, d:500, t:0, panel:ctlName};
       _global.resizeCtl(obj);
    }
    }
    </cfformitem>

    <cfformgroup type="panel" label="Can you find the treasure?" style="headerColors:##AAB883, ##FFF8DC">

    <cfinput type="button" name="open" value="Open Seasame" onclick="resizeAction(dynamicPanel,200);">
    <cfformgroup type="hdividedbox" id="dynamicPanel" width="670" height="0" style="horizontalAlign:center;backgroundColor:##FFFFE7">
    <cfformgroup type="horizontal" style="horizontalAlign:right;">
    <cfinput type="button" name="close" value= "X" onclick="resizeAction(dynamicPanel,0);" style="marginTop:10">
    </cfformgroup>
    <cfformitem type="text">Congratulations you have just stumbled across a hidden treasure!</cfformitem>
    </cfformgroup>

    </cfformgroup>

    </cfform>
  62. Qamrun Nisa
    I have downloaded the mxna reader, and after installing and following your instructions all i am getting the following error

    "The value of the attribute Query, which is currently "fullasagoogcategories", is invalid. "

    Plaese advice me what should i do for correcting the error.

    Regards

    Qamrun Nisa
  63. Laura
    Qamrun,
    That happens because Full as a Goog's web service stopped working some time ago. You can make an empty query for fullasagoogcategories just to make it work.
  64. Maggie
    Hi Laura,

    First off, great app! In the initial summary, you stated that 'We did run into some problems when the case of the column names of the returned query were not consistent and we could not feed Flash the recordset directly.' - I am running into issues in which clicking the button to retrieve all the records by clicking on the button initially returns the correct query from the database. Upon further clicking, like cliking "About", then clicking to get the recent information, the data returned changes, and seems to be ignoring the query altogether.

    This is a rather urgent matter for me, and I'm not sure where I should start looking. I'm not sure I understand how clicking another button in the form brings back an entirely different recordset. Does this sound familiar, and if so, is there anything I can do to fix this?

    Thanks in advance!
  65. anthony

    anthony

    Please i have been writing this code for a week it as to do with the drag and drop stuff i dont really get it and i want to implement it in my code please help me out with it.its urgent its for my project
  66. mike
    I am trying to use this code and unable to get it to load on my website..I have traced it to a couple issues.

    1) the #includes cause 412 errors.
    for instance the global.as file    

    _global.setSelected = function(target){
          if(_global.selectedList != target)
          {
             _global.selectedList.selectedIndex = undefined;
             _global.selectedList = target;
       }
    causes a failure

    2) I am also unable to load the cfsavecontent for actionclose and actionopen because of the same errors?

    any ideas? If i comment those those out I get the page but little functionality.

So, what do you think ?

Subscribe to this comment thread
Leave this field empty