MINDdrops.com

ASP Flash MX Tutorials

Tutorial 

Flash MX  and ASP Communication

Properties
Directions
ActionScript
ASP
Text File
Comments
Keyword Search Results

 

Properties

Name:  Survey 2
ID = ASP1   Version:    1   SWF file size =      Posted: 5/10/03
Level:  Intermediate/Advanced                                             
Primary Focus:  LoadVars object, sendAndLoad , ASP
Secondary Focus: Reading and writing text files in ASP
Approach:  Data transfer from Flash MX movie to ASP page, update text file, return
                   updated data to Flash MX movie

 

Directions

The ActionScript code, ASP file, and text file listed below are the software components used in the learning object: Survey2 -Home Computer Use .  

 

ActionScript 

// Survey 2 Home Computer Use
// Author: Bruce Bird
// Minddrops.com

//INTIAL VALUES

stop();
over=false; // when mouse cursor is not over check dots
submissionCount = 0; // allows survey data to be sent
sendData = new LoadVars(); // used to send data to ASP page
returnData = new LoadVars(); // used to receive data from ASP page
totalSubmissions._visible = false; //hide text field
surveyResults._visible = false; // hide text field

//FUNCTIONS

// Show hand over radio buttons

function showHand() {
    for(i=1;i<=5;i++) {
        if(_root["c"+i].hitTest(_root._xmouse, _root._ymouse, true)) {
            over = true;
            overNumber = i; // indicates the current check dot the mouse is over
            i=30; // kicks the program out of the for loop
        } else {
            over=false
   
     }
    }

    if(over) {
        Mouse.hide();
         _root.handCursor._x = _root._xmouse; // handCursor is the movie clip instance
                                                                        //name for the hand cursor image

        _root.handCursor._y = _root._ymouse;
        _root.handCursor._visible = true;
    } else {
        _root.handCursor._visible = false;
        Mouse.show();
        over=false;
    }
}

// Click choice , show checkmark

function clickChoice() {
    _root["c" + overNumber].onPress = function() {  // c1, c2, ... are the movie clip instance
                                                                                // names of the choice dots

        for(i=1;i<=5;i++) {
            if(i ==overNumber) {
                _root["c" + overNumber].gotoAndStop("Check"); // the choice dots are movie clips
                                                                                        //that have frames labeled Check and noCheck

                   choiceNumber = i
            } else {
                _root["c" + i].gotoAndStop("noCheck");
            }
        }
    }
}

// Submit and retrieve data to/from ASP file : survey2.asp

function submitIt() {
    submitResults.onRelease = function() { // submitResults is the instance name of the
                                                                // Submit/Results button

        if(submissionCount == 0) {
            sendData.choiceNumber = choiceNumber; // on the left of the equal sign choiceNumber
                                                                                // is a property of the LoadVars object whose
                                                                                // instance name is sendData; on the right choiceNumber
                                                                                // is a variable name

            sendData.sendAndLoad("myFile.asp",returnData, "POST"); // myFile.asp is the name of
                                                                                // the ASP file that will a) receive the data sent from the Flash MX
                                                                                // movie; b) update the survey data stored in the text file, myText.txt,;
                                                                                // c) send the updated data back to the Flash MX movie

            totalSubmissions._visible = true;
            surveyResults._visible = true;
            message = "Data Sent";
            submissionCount = SubmissionCount + 1;  // will prevent the next attempt to submit data
        } else {
            message = " Data Not Sent: You have already submitted your response";
        }
    }
}

// Define properties of LoadVars instance name returnData

returnData.onLoad = function() {
    for(i=0;i<=5;i++) {
        _root["r" + i] = this["r"+i]; // on the left r1, r2 ..., are text field variables, but on the right
                                                // they are properties of the returnData LoadVars instance

    }
}

 

//MAIN PROGRAM

_root.c1.onEnterFrame = function() { // I just picked c1 as one of the movie clips that is always
                                                            //on the stage

showHand();
clickChoice();
}
submitIt();

 

 

ASP  (myFile.asp)

<%@ Language=VBScript %>
<% Option Explicit %>

The date is <%=Date%> and the time is <%=Time%> 
<BR>

<%

' It is useful to have the above date and time line in your ASP code so that you can check, by clicking
' your browser refresh button, to see if ASP is working on the computer with which
' you are developing your Flash MX and ASP files.


Dim cN, strPath, fso, oFile, tso, cArray(6), i, k

' ++++++++++++ Get the data from the Flash MX movie
cN = Request.Form( "choiceNumber")
Response.Write "The choiceNumber is " & cN &"<BR>"

' +++++++++++++ Transfer data stored in existing text file: myText.txt to variables in this ASP page
Const ForReading=1
strPath = Server.MapPath("myText.txt")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set oFile = fso.GetFile(strPath)
Set tso = oFile.OpenAsTextStream(ForReading)

k=0
Do While Not tso.AtEndOfStream
    cArray(k) = tso.ReadLine ' cArray(0) is the current total number of previous submissions
                                        ' cArray(1) is the current number of first option submissions
                                        ' cArray(2) is the current number of second option submissions, etc 

    k=k +1
Loop

tso.close
Set tso = Nothing
Set oFile = Nothing
Set fso = Nothing

' +++++++++++++++ Update variables

cArray(0) = cArray(0) + 1 ' increase the current total number of submissions by one

Select Case cN      ' cN is the number of the option chosen in this submission
Case 1
    cArray(1) = cArray(1) + 1
Case 2
    cArray(2) = cArray(2) + 1
Case 3
    cArray(3) = cArray(3) + 1
Case 4
    cArray(4) = cArray(4) + 1
Case 5
    cArray(5) = cArray(5) + 1
Case Else
    Response.Write ("Invalid Operation")
End Select


' +++++++++++++++++ Write the updated variables to the existing text file file: myText.txt

Const ForWriting=2
strPath = Server.MapPath("myText.txt")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set oFile = fso.GetFile(strPath)
Set tso = oFile.OpenAsTextStream(ForWriting)

For i = 0 to 5
    tso.WriteLine(cArray(i))
Next

tso.close
Set tso = Nothing
Set oFile = Nothing
Set fso = Nothing

' ****************** Send the updated variables to the Flash movie
For i = 0 to 5
Response.Write "&r" & i & "=" & cArray(i)      ' r0, r1, etc are the properties of the LoadVars
                                                                        ' instance, returnData, in the Flash movie

Next

%>

Text File  (myText.txt)

0
0
0
0
0
0

 

Comments

One hurdle to overcome when developing ASP pages is the initial settings on your computer. After several attempts I was finally able to get ASP to work but this required adjusting settings in my anti-virus program, Windows XP Professional, Windows Explorer, and IIS 5.1.  If you run into similar problems, see  Getting ASP to run on Windows XP Professional.

The ActionScript code is attached to frame 1 of the main time line. Information about the LoadVars class in Flash MX ActionScript can be found in Moock (page 575-589), and Franklin and Makar (pages 342-353).

Useful references for working with text files in ASP  can be found in Mitchell and Atkinson (Chapter 13), Weissinger (Chapter 18), and Francis et al. (Chapter 11)

 

References

Francis, Brian et al., Beginning Active Server Pages 2.0, Wrox Press Ltd., 1998

Franklin,Derek and Jobe Makur, Macromedia Flash MX ActionScripting Advanced Training From the Source, Macromedia Press, 2002

Mitchell, Scott and James Atkinson, Teach Yourself Active Server Pages in 21 Days, Sams Publishing, 2000

Moock, Colin, ActionScript for Flash MX - The Definitive Guide, 2nd Edition, O'Reilly, 2003

Weissinger, A. Keyton, ASP in a Nutshell, O'Reilly, 1999

Keyword Search Results

1.  Try the following search words at www.google.com. (Be sure to include the quotation marks.)

                                                                      Pages sited by Google

LoadVars()                                                       3,140

sendAndLoad() LoadVars()                                545

ASP  FileSystemObject                                  32, 700

"reading and writing text files" ASP                       173

 


2002-7  All rights reserved.  MINDdrops.com