[Laszlo-dev] For Review: Change 20090103-hqm-F Summary: always set textfield.mouseEnabled=true in swf9 LzTextSprite

André Bargull andre.bargull at udo.edu
Mon Jan 5 08:07:50 PST 2009



On 1/4/2009 9:44 PM, P T Withington wrote:
> I wonder if we should do a little more designing before publishing this 
> new feature.  I'd hate to get locked in to a random API.  I'd at least 
> like to keep this API private until we are happy with it.

It is already a public API and documented in the 4.2 reference. (Because 
everything which isn't declared as "@access private" is automatically 
taken as public..)

> Aren't what you really doing is enabling a callback from a span of 
> text?  Maybe we should be using `callback` instead of `link`?

It's implemented as an anchor-tag (<a href="..">) in the flash runtimes, 
therefore the term "link" was chosen.


> Also, in the test case, it seems odd to use %s to insert this callback 
> in the text.  It seems quite plausible to me that there could be some 
> runtime where you cannot just inject text to create a callback (e.g., 
> you might have to draw a target box or something).  

"makeTextLink(..)" was designed to provide a cross-platform way to build 
up text-links for html-formatted texts, so a way to express "<a 
href='javascript:foo()'>...</a>" compatible for swf8, swf9 and dhtml. 
And by that contract, we just talk about html-strings and therefore I 
don't think we need to consider other runtimes yet.


> It's probably a bug in %s if it does not escape HTML (which would defeat the example).

I don't think it should escape HTML. If you need to have HTML escaping, 
you can use one of:
- this.format("click %s", "<>".toHTML())
- this.setAttribute("text", this.formatToString("click %s", "<>").toHTML())


> 
> I'm thinking there should be a more abstract interface, perhaps using 
> `format` that would allow you to specify a callback.  Something like:
> 
>> <class name="testcase" extends="text"
>>         multiline="true" width="150"    >
>>    <handler name="oninit" >
>>      this.format("click %!s or %!s", 'callback', 'here', 'callback', 
>> 'there');
>>    </handler>
>>    <method name="callback" args="val" >
>>      this.addFormat("\n%s was clicked", val);
>>    </method>
>>  </class>
> 
> 
> That is, add a new flag '!' (mnemonic executable magic number, or emacs 
> m-! (execute shell command), etc.) which takes the next argument as a 
> method to call, and indicates that the formatted version of the 
> subsequent argument should be clickable (and call the method with that 
> object as an argument).  (Similar in spirit to the `=` flag that lets 
> you associate an object with a presentation for the debugger to inspect.)
> 
> That's my 2p. at least.
> 
> 
> On 2009-01-04, at 11:50EST, André Bargull wrote:
> 
>> Yes, I think that's the way to go. Maybe the name shouldn't contain 
>> "hyperlink" but instead "textlink" because the method is also called 
>> "makeTextLink(..)". And how about to use just "textlinks", because IMO 
>> writing "enabletextlinks" is a bit too cumbersome.
>>
>> <text enabletextlinks="true" />
>> <text textlinks="true" />
>>
>>
>>
>> On 1/4/2009 4:48 PM, Henry Minsky wrote:
>>> Yeah, I guess we had better not set mouseEnabled=true by default. But
>>> it looks like we do need to set it in order
>>> to make text links clickable. So maybe we have to add a new flag
>>> "enablehyperlinks" or something, to let
>>> the user specify that they want mouse clicks to be accepted, but don't
>>> necessarily want the other
>>> behaviors of 'selectable' or 'clickable'?
>>> On Sun, Jan 4, 2009 at 8:51 AM, André Bargull <andre.bargull at udo.edu> 
>>> wrote:
>>>> If you set "mouseEnabled" to `true` unconditionally, you'll reintroduce
>>>> LPP-6086, won't you?
>>>>
>>>>
>>>> On 1/4/2009 5:25 AM, Henry Minsky wrote:
>>>>> This  change just keeps textfield.mouseEnabled = true all the time 
>>>>> in the
>>>>> LzTextSprite. This at least makes the same behavior in swf8 and 
>>>>> swf9, for
>>>>> non-clickable text with links.
>>>>>
>>>>> The current behavior in swf8, when  clickable=true on a <text> view,
>>>>> clicking on a hyperlink causes the view to only generate onclick 
>>>>> events,
>>>>> and doesn't send the ontextlink event.
>>>>>
>>>>> I'm not sure how to get the hand cursor to appear in dhtml over
>>>>> hyperlinks, maybe Max knows...
>>>>>
>>>>>
>>>>
>>
> 
> 



More information about the Laszlo-dev mailing list