Perfect Henry! :) Using the event-handler approach worked!

If a different approach shows up, I'll give it a try :).

Thank you very much.

L.

On Sun, Jan 24, 2010 at 10:28 PM, Henry Minsky <[email protected]>wrote:

> Actually, I could use some suggestions on better ways to accomplish what
> Lucas is trying to do.
>
> He has a canvas attribute called "data_url", and he wants a dataset to
> automatically make a new request whenever that value changes. He's trying to
> do that with a constraint
>
>     <dataset id="perms"
>              name="perms"
>              type="http"
>              src="${canvas.data_url}"
>              >
>
> I was going to suggest setting 'autorequest=true' on the dataset, so that
> it
> will fire automatically when the src attribute changes, but the problem is
> at startup,
> the constraint system sends an event for "data_url", before it  has
> a legitimate value. He's trying to set the value from a browser query arg,
> in the canvas
> oninit handler.
>
> e.g.,
>
>  <method name="init">
>         canvas.prof = lz.Browser.getInitArg('prof');
>         if(canvas.prof) {
>             canvas.setAttribute('data_url','/trunk/xml/request_key/' +
> canvas.prof+".xml");
>         }
>     </method>
>
> So the question is, is there any idiom  for disabling the event-sending
> action of a constraint until after the
> system has initialized? It seems to me like people would run into this in a
> lot of cases at
> app startup?
>
>
>
>
>
> On Sun, Jan 24, 2010 at 6:00 PM, Lucas Lain <[email protected]> wrote:
>
>> Hello Henry,
>>
>> thank you very much for trying the code. I tried several things, and
>> realized that everythings works OK when I use the button (as in your
>> example).
>>
>> But when I try to automatically execute the perms.doRequest on init, it
>> does not work.
>>
>> Is  there a way to automatically execute perms.doRequest after finishing
>> loading?
>> Which is the best way of doing this.
>>
>> Thank you very much.
>>
>> Lucas.
>>
>> On Sat, Jan 23, 2010 at 6:52 PM, Henry Minsky <[email protected]>wrote:
>>
>>> Note, I am using the HttpFox plugin to trace the HTTP request from the
>>> Flash player
>>>
>>> 2010/1/23 Henry Minsky <[email protected]>
>>>
>>> I'm not able to reproduce the problem you are reporting.
>>>>
>>>> I used the following test case
>>>>
>>>> <canvas proxied="false" oninit="canvas.sprite.setBGColor(null);"
>>>> debug="true">
>>>>
>>>>     <attribute name="prof" type="string" value=""/>
>>>>     <attribute name="data_url" type="string" value="BADVALUE"/>
>>>>
>>>>     <method name="init">
>>>>         canvas.prof = lz.Browser.getInitArg('prof');
>>>>         if(canvas.prof) {
>>>>             canvas.setAttribute('data_url','/trunk/xml/request_key/' +
>>>> canvas.prof+".xml");
>>>>         }
>>>>     </method>
>>>>
>>>>     <dataset id="perms"
>>>>              name="perms"
>>>>              type="http"
>>>>              autorequest='false'
>>>>              ondata="Debug.info(this.serialize())"
>>>>              src="${canvas.data_url}"
>>>>              />
>>>>
>>>>     <button onclick="perms.doRequest()">dorequest</button>
>>>>
>>>> </canvas>
>>>>
>>>>
>>>> and fetched it with the URL
>>>>
>>>> http://127.0.0.1:8080/trunk/test/foo/player.lzx?prof=foo&debug=true&lzr=swf9
>>>>
>>>> When I click the button, the correct request is issued, to
>>>> GET /trunk/xml/request_key/foo.xml?__lzbc__=1264279916554 HTTP/1.1
>>>>
>>>> Does this test case work for you?
>>>>
>>>>
>>>> On Sat, Jan 23, 2010 at 1:43 PM, Lucas Lain <[email protected]>wrote:
>>>>
>>>>> I renamed everything to prof_p, but still can make it to work.
>>>>>
>>>>> Did anyone have a workaround for this?
>>>>>
>>>>> I just want to send some information to the webserver from the
>>>>> flashclient.
>>>>>
>>>>> Best.
>>>>>
>>>>> L.
>>>>>
>>>>>
>>>>>
>>>>> On Sat, Jan 23, 2010 at 11:04 AM, Henry Minsky <[email protected]
>>>>> > wrote:
>>>>>
>>>>>> One thing that is important, you should probably  use a different
>>>>>> query arg than "profile", because that has a special
>>>>>> meaning to the LPS server, it is used to enable the profiler  which is
>>>>>> used to meter performance.
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Best.
>>>>>>>
>>>>>>> L.
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Jan 22, 2010 at 1:14 AM, Lucas Lain <[email protected]>wrote:
>>>>>>>
>>>>>>>> Please see both attached files.
>>>>>>>>
>>>>>>>> The perms.doRequest is called from the view inside play_button.
>>>>>>>>
>>>>>>>> I'm using OL 4.7. The file is compiled to SWF9.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Jan 22, 2010 at 1:04 AM, Henry Minsky <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Where do you actually call the doRequest() method on the dataset?
>>>>>>>>> Do you
>>>>>>>>> call it manually?
>>>>>>>>>
>>>>>>>>> If  the dataset is set to make the  request automatically, e.g.,
>>>>>>>>> (the 'request' attribute == true) then
>>>>>>>>> the request might get made before the constraint updates.
>>>>>>>>>
>>>>>>>>> Also, what runtime are you using?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Jan 21, 2010 at 9:48 PM, Lucas Lain 
>>>>>>>>> <[email protected]>wrote:
>>>>>>>>>
>>>>>>>>>> Hello Everybody,
>>>>>>>>>>
>>>>>>>>>> I'm trying to set a dataset url dynamically. The thing is that the
>>>>>>>>>> dataset actually connects to the default data_url specified by 
>>>>>>>>>> default
>>>>>>>>>> ("/xml/request_key") and not the dynamic one ("/xml/request_key/" +
>>>>>>>>>> canvas.profile).
>>>>>>>>>>
>>>>>>>>>> When I check the value in the debug console, the value is set to
>>>>>>>>>> the second, but actually connects to the first one.
>>>>>>>>>>
>>>>>>>>>> When the oninit method is executed? after processing all ${}
>>>>>>>>>> values?
>>>>>>>>>>
>>>>>>>>>> Thanks in advance!
>>>>>>>>>>
>>>>>>>>>> code:
>>>>>>>>>>
>>>>>>>>>> <canvas proxied="false" oninit="canvas.sprite.setBGColor(null);"
>>>>>>>>>> debug="true">
>>>>>>>>>>
>>>>>>>>>>     <attribute name="profile" type="string" value=""/>
>>>>>>>>>>     <attribute name="data_url" type="string"
>>>>>>>>>> value="/xml/request_key/"/>
>>>>>>>>>>
>>>>>>>>>>     <handler name="oninit">
>>>>>>>>>>         canvas.profile = lz.Browser.getInitArg('profile');
>>>>>>>>>>         if(canvas.profile) {
>>>>>>>>>>             canvas.setAttribute('data_url','/xml/request_key/' +
>>>>>>>>>> canvas.profile);
>>>>>>>>>>         }
>>>>>>>>>>     </handler>
>>>>>>>>>>
>>>>>>>>>>     <dataset id="perms"
>>>>>>>>>>              name="perms"
>>>>>>>>>>              type="http"
>>>>>>>>>>              src="${canvas.data_url}"
>>>>>>>>>>              />
>>>>>>>>>>
>>>>>>>>>> ...
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Lucas
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Henry Minsky
>>>>>>>>> Software Architect
>>>>>>>>> [email protected]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Lucas
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Lucas
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Henry Minsky
>>>>>> Software Architect
>>>>>> [email protected]
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Lucas
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Henry Minsky
>>>> Software Architect
>>>> [email protected]
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Henry Minsky
>>> Software Architect
>>> [email protected]
>>>
>>>
>>>
>>
>>
>> --
>> Lucas
>>
>
>
>
> --
> Henry Minsky
> Software Architect
> [email protected]
>
>
>


-- 
Lucas

Reply via email to