We have a problem:
dragstate has an internal method, __dragstate_get_newpos, that is used
by the constraints that it installs. The constraints run in the
parent, so they expect that internal method of dragstate to be in the
parent. It doesn't really need to be applied/removed; it just needs
to be there for when the constraints are applied.
I thought I had updated to include your new warning, but I am not
getting a warning on this. It is used by the swf debugger, so should
be triggering a warning, no?
Anyways, we might have to re-think our policy about no methods in
states. Not that they can't have methods, but that any methods they
contain become methods on the parent, automatically.
On 2008-03-15, at 16:45 EDT, Henry Minsky wrote:
in base/basewindow.lzx, I moved the setDragPos method to be outside of
the state, given that we will
be phasing out support for methods inside of states.
<state name="_windowDrag">
<attribute name="starty" value="$once{this.y}"/>
<attribute name="startx" value="$once{this.x}"/>
<attribute name="ydoffset" value="this.getMouse( 'y' )"
when="once" />
<attribute name="xdoffset" value="this.getMouse( 'x' )"
when="once" />
<attribute name="y"
value="${setDragPos('y',
this.immediateparent.getMouse( 'y' ))}"/>
<attribute name="x"
value="${setDragPos('x',
this.immediateparent.getMouse( 'x' ))}"/>
</state>
<method name="setDragPos" args="xory, mousepos"> <![CDATA[
var newpos = mousepos - this[xory + 'doffset'];
var diff = this[xory] - this['start' + xory];
if (Math.abs(diff) > 3) {
setAttribute('state', 3);
}
return newpos;
]]>
</method>
--
Henry Minsky
Software Architect
[EMAIL PROTECTED]