View this PageEdit this PageUploads to this PageHistory of this PageHomeRecent ChangesSearchHelp Guide

Patrick's Progress

As coding on the project proceeds apace (or behind pace), I will use this page to log the changes, tweaking, and (more likely) debugging that I've been engaged in from day-to-day. The Lingo directly impacts on interface issues and, when writing a code, I often have to make tacit assumptions about informational and graphical layout. Checking up here will give you a narrow focus for reviewing the emerging design of the prototype. I'll also mention some specific handlers etc. if you want to gloss the code itself.


  • devoted some time to trouble-shooting the initialization of the strip, which (within the context of Director) seemed to be having some problems initializing, either not setting the strip in place at all or garbling the order
    • changed the frame script "enter strip view" to a prepareFrame event, so that everything would be set before the screen draws
    • created a fail-safe local variable, which is set either as TRUE of FALSE depending on whether the user has been to the category mainpages
    • made a projector of the application and noticed no difficulties in the initialization of the strip

  • tried– in vain– to find the font which was used for the category graphics in the original files
    • suspect the original is Futura, but I could not find it in the department or for free
    • after much font-ogling, settled on Gil Sans Extra Bold as a reasonable alternative

  • created category graphics (and their color versions) with the new font and set them as rollovers within the application

Check these new functionalities against our design aims for transitions (Next meeting's agenda) to see if they are accurate, or if they produce the effect we envisioned. Tweaking is eminently possible.


  • Arrrgh. I worked all day and produced no change that you would notice unless I pointed it out. Suffice to say that the number of things being held in suspension at any one time is getting pretty involved.

  • worked at a glitch where, when the user starts to scroll on the strip, all the time Triggers flash briefly as they are initialized
    • tried moving the time Trigger sprite information from the timeTrigger() handler to various other locations, where the visibility could be set to FALSE in enough time to catch the flash
    • eventually settled on the "enter strip view" frame script as the only place to set the information, but still seems to work inconsistently

      handler: startStrip()
        Another possible solution to avoiding the flash associated with setting the visibility to zero is to reset the loc instead of the visibility. In other words, have the loc of a sprite be off stage and then have it reset for its proper placement on stage when triggered by the filmstrip's movement or a category button.

  • set the clip 3 button on the top bar as clickable from the category mainpages; when activated, returns to film strip mode and resets the strip to the beginning

    sprite script: clip3start

  • redesigned the clip progress bar graphic to create a horizontal light effect and more emphasized squared edges (although the resized result is quite anticlimactic)

  • rewrote the algorithm which calculates the width of the clip progress bar relative to the strip position, so that the bar would be long enough to be set flush against beginning and end points

    variable widthDot in: stripStart(), overStrip()
    • needed to recalculate the ratio such that the strip would resize fast enough to get from 0 to 60 between strip beginning and end
    • NB: this algorithm was the sadistic number soup that I had on the whiteboard, and modifying it took more paranthetical statements than would be used at your average po-mo theory conference. So be nice to me.


  • generalized the handler for blending out time triggers and clickable time elements, so that it accepts arguments for those triggers it will not be blending out, after counting a variable number of parameters

    handler: allTriggerBlendOut()
    • eliminates a lot of difficulties because there are now 22 puppeted channels of time trigger elements to be blended out or in

  • made a linear list (accessible as a global variable) of all timeTrigger and timerClick elements so that they can be retrieved in repeat loops by incremental position

    handler: startMovie2 (list: triggerNumberList)

  • set the rest of the clickable times to readjust the strip accordingly

    cast member scripts: retrieve the strip position from a property list (triggerPosList) and use it as the reset value when the strip reappears
    • changed the readjusting motion of the strip to make the resetting as gradual and unbroken as possible, using increments of 1 within 20 pixels of the reset point

      handler: fadeStripIn

  • resized and blurred the bending strip PICT sequence so that it would pick up as seamlessly as possible from the blurring-out strip sequence

  • designed a handler that would cycle through the strip bend sequence when the time Triggers are clicked, either starting with the strip blurring (if the trigger is clicked in strip view mode) or moving directly to the twisting of the blurred strip (if the trigger is clicked from the category mainpage)

    handler: goStripTwist()
    • tracks which trigger has been clicked and maintains it on the stage until the twisting is complete

  • created a handler that "squishes" the categories at the appropriate point in the screen transition

    handler: onSquishCategory()

08.03.99 - 08.06.99

  • continued fine-tuning the time trigger prototype, implemented new navigational functionalities, and trouble-shot existing code to account for changes and contingencies

    • changed scripting of time triggers such that, based on the given category or strip position, a trigger visible in both states (filmstrip mode and category mainpage) persists on the stage across the transition

      • if a time trigger is visible in the filmstrip mode, and will continue to be visible on the category mainpage, does not blend out

        scripts: (sprite scripts) go to ft, go to rr, go to lo, hist recr
      • if returning to the strip from a category mainpage, and a trigger from that category should be visible based on the strip position, does not blend out

        handler: fadeTriggerOut()

    • fixed glitch where a trigger that remained visible from the category mainpage was flashing (briefly) as the strip reset

      handler: startStrip()

    • made clickable time elements: set them to rollover, and then blend in and blend out upon entering/ exiting the relevant category

      frame scripts: ft trigger 3, race trigger 3, hist trigger 3, lit trigger 3

      handler: fadeTriggerOut()

    • set strip pixel values that cue related time Triggers into a property list for better retrieval

      list: triggerPosList

    • created individual cast member scripts for each of the clickable time elements, which reset the strip to the position which corresponds with their listed time

      • retrieves the value for the new strip position from the time trigger property list, and determines the difference between this value and the existing position of the strip
      • fades the strip in, while automatically scrolling the distance between the former and new strip position
      • resets the visible strip to its new position

        called handlers: fadeStripIn(), triggerBlendOut()

07.30.99 - 08.02.99

  • read O'Reilly's everything you ever wanted to know about lists (but were afraid to ask), and then started fine-toothing the prototype code that Jason wrote, a very list-based operation
    • finished making my way through the code on Monday morning (after a sore-required day off) and am now prepared to start messing it up with impunity (or alacrity, I can't decide which)

07.30.99 - 08.2.99

  • read O'Reilly's everything you ever wanted to know about lists (but were afraid to ask), and then started fine-toothing the prototype code that Jason wrote, a very list-based operation
    • finished making my way through the code on Monday morning (after a sore-required day off) and am now prepared to start messing it up with impunity (or alacrity, I can't decide which)


  • implemented the changes to layout, color, and time triggers in the most current prototype


  • changed the blurred strip graphics (series of eleven increasingly blurred images) to deal with the problem of banding with translucent images

    • seems better now– although the change is minimal


  • changed the filmstrip position indicator from an arrow moving along a line to a solid bar that expands/contracts its size

    • changed the cast member for dotSprite, in stripStart and overStrip
    • altered a really sadistic calculation (the theorem I had on the white board) such that it returns the width of a cast member rather than a locH

  • fixed a glitch which was occurring when the user clicked on a category while the movie was playing, which was triggering the strip to blur out over top of the movie

    • rearranged message hierarchy so that, when a category is clicked in movie play mode, the movie resizes down to the strip, and the strip THEN blurs out to the category mainpage
    • may want to rethink the clarity of this transition (do we even need the categories to be clickable while the movie is playing?)

07.25.99 - 07.26.99

  • created a prototype sprite transition for moving between film strip mode and a category main page, where the strip fades to a blurred version of itself (or comes into focus, if returning to the film strip mode)
    handler: fadeStripIn, fadeStripOut

    • fadeStripOut is activated by clicking on any of the categories (i.e. film technique, historical representation)
    • in their current position, the strip sprites get changed to a blend ink and gradually fade down to a transparency of 20
    • when the strip sprites reach a transparency of 70, another sprite appears behind them, consisting of a blurred out portion of the film strip
    • the blurred strip sprite is swapped out for a series of consecutively more blurry cast members, on a time delay, until reaching the member which stays on stage for the category mainpage

    • set up the category mainpage so that clicking on the blurred strip
      would activate an inverse of the above (fadeStripIn)
    • the swapping of strip sprites is reversed, from more to less blurred, and the film strip gradually becomes less transparent in its
      current position

how about putting the most recent entries first?

Week of 07.18.99 - 07.22.99

  • established a handler for activating time triggers, whether strip is being scrolled or the movie is playing
    handler: on timeTrigger (located in on overStrip)

    • logs the locH of the final strip sprite to determine when relevant triggers should appear
    • converts the locH value into equivalent movie times if the film clip is playing

  • since the timeTrigger call is in a repeat loop when the movie is playing, needed to set commands within the loop such that the cursor still swaps out appropriately when over the movie or the strip
    handler: on makeLargeBorder

    • in the loop, tests mouse locH and mouse locV to determine cursor setting
    • exits the repeat loop on any mouseDown

  • changed the film strip cleanup function such that– if the user returns to the film strip view– the strip will be reset to its former position
    handler: on cleanStrip

    • removes all strip sprites, but retains the value of longClip1Sprite in a global variable, which is used to reset the strips to their former position
    • retains how much strip is remaining in the global stripRem, which is later used to reset the trailer sprite
    • sets a global clipAnalysis to 2; if the user re-enters film strip mode, this variable tells the handler to reassemble the strip based on a previous position
    • when the playback head returns to the film strip mode, clipAnalysis is reset to 0

  • set up frame scripts to make the appropriate time triggers visible when the playback head navigates to a relevant section
    scripts: ft trigger 3, hist trigger 3, lit trigger 3, race trigger 3
    handler: triggerBlendIn

    • reveals the triggers bearing on that category and calls their locH and locV positions
    • calls the custom handler triggerBlendIn, which makesthe sprites visible and blends then to 100 percent gradually
    • triggerBlendIn uses paramCount() to make the handler workable for varying numbers of triggers

  • attached the blending function to the category buttons, so that when a category of analysis is selected from film strip mode, the time triggers blend out
    handler: triggerBlendOut

    • blends the time triggers down to 0, and makes them invisible
    • tests whether a visible time trigger will remain visible in the particular category being accessed, and if so, does not blend it out
    • resets the blend to 100 so the trigger is visible once again when reactivated

On Friday, I fully commented all of the code, so feel free to engage in a little light reading if you want.