[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