Hello Rick,

I didn't used images in JavaScript yet, because I am afraid about conversions 
between "Core Image" images and "JavaScript" images. I am sure this conversion 
won't be CPU or GPU cost free. Thats why I always try to keep JavaScript inputs 
and outputs as simple as possible.

best,

Achim Breidenbach
Boinx Software


On 17.06.2011, at 10:25, Rick Mann wrote:

> Thanks, I think that'll do the trick!
> 
> It only works for Javascript types, right? I can't pass an image through the 
> state machine in the same way, can I? Doesn't matter, I can make it work with 
> strings, just curious.
> 
> -- 
> Rick
> 
> On Jun 17, 2011, at 1:16 , Achim Breidenbach wrote:
> 
>> Hello Rick,
>> 
>> in BoinxTV most of such time critical things that are triggered by events I 
>> implemented as a state machine in Javascript. A state machine is a program 
>> that has a certain state and keeps it for the next run loop. The state will 
>> only be changed if a certain condition is matched. In your case such a 
>> machine could look like this:
>> 
>> var oldString = "";
>> var currentString = "";
>> var startTime = 0;
>> var state = 0;
>> 
>> function (__string string1, __string string2, __number animationTime)
>> main (__number currentTime, __string newString, __number transitionDuration)
>> 
>> {
>>      var animationTime = 0;
>> 
>>      switch(state)
>>      {
>>      case 0: // wait for new string
>>      
>>              if(oldString != newString){
>>                      startTime = currentTime;
>>                      currentString = newString;
>>                      state = 1; // make transition to new string
>>              }
>>              break;
>>      
>>      case 1: // make transition to new string
>>              
>>              
>>              animationTime = (currentTime - startTime) / transitionDuration;
>>              
>>              if(animationTime >= 1.0){
>>                      // transition is over
>>                      oldString = currentString;
>>                      state = 0; // wait for next string
>>              }
>>      
>>              break;
>>      
>>      default:
>>              state = 0;
>>      }
>> 
>>      var result = new Object();
>>      result.string1 = oldString;
>>      result.string2 = currentString;
>>      result.animationTime = animationTime;
>>      return result;
>> 
>> }
>> 
>> find attached a little composition where this code is embedded. Just change 
>> the text from the "Message" input field to make it transition to the next 
>> text.
>> 
>> <text transition.qtz>
>> 
>> The big advantage of such a state machine is, that you can add more states 
>> to it without breaking the others. even if there are states that jumps to 
>> other states only for certain conditions, you are always sure that the other 
>> parts don't get affected. Also you can easily trace the "state" variable 
>> within your code to see if you finally arrives at the start again. This 
>> programming pattern gives you a very robust code. In this case nothing can 
>> dusturb the transition animation. Only when the transition has finished a 
>> new text will be accepted. 
>> 
>> best,
>> 
>> Achim Breidenbach
>> Boinx Software
>> 
>> 
>> 
>> On 17.06.2011, at 09:09, Rick Mann wrote:
>> 
>>> I've been doing these on-screen graphics for a web channel that covers 
>>> space launches. We show a couple of different countdown clocks, as well as 
>>> a block of ascent parameters.
>>> 
>>> But for the last nine minutes of a shuttle launch, there's not much to 
>>> show. I have a couple dozen events that occur at various times during the 
>>> count. I want to display each one as it occurs. An event is just a text 
>>> string describing the event ("APU Start," "Steering Test," etc.).
>>> 
>>> My custom patch can either output each string on a output port, or output 
>>> an array of structures that has the string and the associated time. The 
>>> former is easier for me.
>>> 
>>> How can I crossfade from the last event string to the next, especially when 
>>> they come in rapid succession (perhaps more quickly than the crossfade 
>>> duration)?
>>> 
>>> I was doing a similar cross fade between a set of images, and it was a real 
>>> pain to build the structure for it.
>>> 
>>> Thanks for any suggestions,
>>> Rick
>>> 
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Quartzcomposer-dev mailing list      ([email protected])
>>> Help/Unsubscribe/Update your Subscription:
>>> http://lists.apple.com/mailman/options/quartzcomposer-dev/achim%40boinx.com
>>> 
>>> This email sent to [email protected]
>> 
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to