I'm a novice with OpenLaszlo, though I work a lot with Flex. I'm
learning OL to possibly use the LZC compiler to generate
SWFs as part of a batch process, and as well as a learning exercise.
I've got a question about mouse tracking and animating a multiimage
resource on mouseout and OL is different enough from Flex that I'm a
little stumped.

I've reduced my code to the relevant parts below. This LZX loads 18
frames (in this case) into a view, and using mousetracking switches the
current frame (using setResourceNumber) based on the position of the
mouse on the x plane. This much works fine.

When the mouse leaves the view I'd like to trigger the sequence of
frames to play as a looping animation, regaining mouse control only when
the mouse enters the view. I've tried adding a onmouseout handler  to
call play() on the view but I can't get anywhere.

What am I missing?

Thanks,

Roger Howard

----- Example below -----

<canvas width="320" height="240">

  <resource name="spinframes">
      <frame src="001.jpg" />
      <frame src="003.jpg" />
      <frame src="005.jpg" />
      <frame src="007.jpg" />
      <frame src="009.jpg" />
      <frame src="011.jpg" />
      <frame src="013.jpg" />
      <frame src="015.jpg" />
      <frame src="017.jpg" />
      <frame src="019.jpg" />
      <frame src="021.jpg" />
      <frame src="023.jpg" />
      <frame src="025.jpg" />
      <frame src="027.jpg" />
      <frame src="029.jpg" />
      <frame src="031.jpg" />
      <frame src="033.jpg" />
      <frame src="035.jpg" />
  </resource>

  <view resource="spinframes" id="spinview" visible="true"
clickable="true">
      <attribute name="moustracker_del" value="$once{ new LzDelegate(
this, 'trackmouse' )}" />

      <handler name="onmouseover">
          moustracker_del.register(LzIdle,'onidle');
      </handler>

      <handler name="onmouseout">
          spinframes.play();
      </handler>

      <method name="trackmouse">
          var xc = this.getMouse('x');
          var slwid = 320 / 18;
          var sl = ( Math.floor(xc/slwid) ) + 1;
          spinview.setResourceNumber(sl);
      </method>

  </view>

</canvas>

Reply via email to