[SWFObject] external interface problems

Maurice Moore info at madcomputing.com.au
Tue Oct 17 00:07:34 PDT 2006


Thanks for all your help Aran.

I am testing with shared objects now, and now i know that they will work 
  without a full flash site, i will most likely go that way instead.

I am primarily a .NET developer but have teamed up with graphic 
designers that do some cool stuff in flash but don't know how to code.
So I get the ActionScript jobs.

We are about to embark on a full blown Flash based CMS for flash sites 
using .NET data layer.

See how many hairs I lose over that one :P

Kind regards and thanks again.

Maurice.

Aran Rhee wrote:
> Maurice.
> 
> Cool. If having flash deal with the cookie type info works for you that's
> great... 
> 
> I use shared objects extensively, and implemented a full flash remoting
> caching system with it where the methods, parameters, and results of a flash
> remoting call are stored in a shared objects. 
> 
> If the same method call is made (with the same parameters) within a given
> time frame the results are pulled from the shared object rather than making
> another server call to get the data from the database.
> 
> Anyway, good to see other Aussies on the list :)
> 
> 
> Cheers,
> Aran
> 
>> -----Original Message-----
>> From: swfobject-bounces at lists.deconcept.com 
>> [mailto:swfobject-bounces at lists.deconcept.com] On Behalf Of 
>> Maurice Moore
>> Sent: Tuesday, 17 October 2006 4:45 PM
>> To: swfobject at lists.deconcept.com
>> Subject: Re: [SWFObject] external interface problems
>>
>> Hi Aran,
>>
>> thanks for that, i thought i would persist with the server 
>> side cookies, although your approach has less code and doesnt 
>> rely on server scripting. i will look into your solution now.
>>
>> attached is my solution. as it no longer requires javascript 
>> it is cross browser.
>>
>> live url is here: http://bmewaste.com.au/
>>
>> thanks again,
>>
>> maurice
>>
>> Aran Rhee wrote:
>>> Maurice
>>>
>>> Flash objects can be used by any flash file, so you could have an 
>>> "invisible" flash file reading values and doing something 
>> on a hybrid site.
>>> Flash objects can be written/read at any time once the 
>> flash file has 
>>> loaded (to do the reading/writing as required).
>>>
>>> Attached is a wrapper class I wrote to give easy access to 
>>> read/write/delete methods. It is comprised of static 
>> methods so you can do something like:
>>> import LocalData;
>>>
>>> // save record
>>> LocalData.save("mysite", "lastUrl", "home.html"); .
>>> .
>>> .
>>> // load it later
>>> var last : String = LocalData.load("mysite", "lastUrl");
>>> trace(last) // displays "home.html"
>>>
>>>
>>> Aran
>>>
>>>> -----Original Message-----
>>>> From: swfobject-bounces at lists.deconcept.com 
>>>> [mailto:swfobject-bounces at lists.deconcept.com] On Behalf Of 
>>>> Maurice Moore
>>>> Sent: Tuesday, 17 October 2006 3:57 PM
>>>> To: swfobject at lists.deconcept.com
>>>> Subject: Re: [SWFObject] external interface problems
>>>>
>>>> Hi Aran,
>>>>
>>>> I tried but could not get that to work either.
>>>> I posted on flashkit to ask if it was only suitable for full 
>>>> flash sites, but got no answer. but i read somewhere that 
>>>> this is the only time it is available after a page refresh ??
>>>>
>>>> regards,
>>>>
>>>> maurice
>>>>
>>>> Aran Rhee wrote:
>>>>> Maurice.
>>>>>
>>>>> Sorry if you've already thought of this, or if it 
>>>> unsuitable for your 
>>>>> needs, but why don't you use flash shared objects rather 
>>>> than cookies ?
>>>>> You can store all kinds of objects in the structure (even 
>>>> full history 
>>>>> management, complex nested objects etc)
>>>>>
>>>>>
>>>>> Aran
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: swfobject-bounces at lists.deconcept.com
>>>>>> [mailto:swfobject-bounces at lists.deconcept.com] On Behalf 
>>>> Of Maurice 
>>>>>> Moore
>>>>>> Sent: Tuesday, 17 October 2006 12:58 PM
>>>>>> To: swfobject at lists.deconcept.com
>>>>>> Subject: Re: [SWFObject] external interface problems
>>>>>>
>>>>>> thanks for that,
>>>>>>
>>>>>> i am converting it to actionscript classes that fully 
>> abstract the 
>>>>>> cookie and use a broker pattern to serve the cookie objects and 
>>>>>> persist them so i can re-use it with any server language.
>>>>>>
>>>>>> thanks again
>>>>>>
>>>>>> maurice
>>>>>>
>>>>>> Geoff Stearns wrote:
>>>>>>> getURL won't return anything, only calls that you make through 
>>>>>>> external interface.
>>>>>>>
>>>>>>> normally when i set up things like this, i set up the js
>>>>>> functions in
>>>>>>> the html (or in a js file) and then just use external 
>>>> interface to 
>>>>>>> call those functions, and that allows you to get return values.
>>>>>>>
>>>>>>> it also makes it much easier to troubleshoot things, since
>>>>>> you can put
>>>>>>> in alerts and whatnot to see where the script is failing.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Oct 16, 2006, at 7:12 PM, Maurice Moore wrote:
>>>>>>>
>>>>>>>> hmm.. now i remember.
>>>>>>>>
>>>>>>>> i couldn't work out how to return something to flash 
>> when i use 
>>>>>>>> geturl to invoke the cookie 'get' function. at the moment
>>>>>> it returns
>>>>>>>> the value but
>>>>>>>>
>>>>>>>> return getURL("javascrtipt:getCookie('page');");
>>>>>>>>
>>>>>>>> wasnt returning anything.
>>>>>>>>
>>>>>>>> any ideas?
>>>>>>>>
>>>>>>>> maurice
>>>>>>>>
>>>>>>>> nyls wrote:
>>>>>>>>> mm.. so you write the JS functions through the external 
>>>> interface 
>>>>>>>>> call ..
>>>>>>>>>
>>>>>>>>> Did you try putting the cookie javascript outside the
>>>>>> flash (on the
>>>>>>>>> page or in a .js file ??)
>>>>>>>>>
>>>>>>>>> Nyls
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -----Oorspronkelijk bericht-----
>>>>>>>>> Van: swfobject-bounces at lists.deconcept.com
>>>>>>>>> [mailto:swfobject-bounces at lists.deconcept.com] Namens
>>>>>> Maurice Moore
>>>>>>>>> Verzonden: Monday, October 16, 2006 4:35 PM
>>>>>>>>> Aan: swfobject at lists.deconcept.com
>>>>>>>>> Onderwerp: Re: [SWFObject] external interface problems
>>>>>>>>>
>>>>>>>>> hi and thanks for the replies,
>>>>>>>>>
>>>>>>>>> the javascript is set from within the flash and is below
>>>>>> (this is my
>>>>>>>>> first time at a mailing list and the format is all over
>>>>>> the place,
>>>>>>>>> sorry).
>>>>>>>>>
>>>>>>>>> the actual actionscript that calls the following class 
>>>>>>>>> 'CookieBroker' is as follows
>>>>>>>>>
>>>>>>>>> ------------------
>>>>>>>>> function GetPage(pageToLoad)
>>>>>>>>> {
>>>>>>>>> 	if(pageToLoad == "/") { pageToLoad = "/?"; }
>>>>>>>>> 	var val = CookieBroker.GetCookie("page");
>>>>>>>>> 	if (val == undefined || (pageToLoad.indexOf(val) < 0))
>>>>>>>>> 	{
>>>>>>>>> 		CookieBroker.SetCookie("page", pageToLoad, "/");
>>>>>>>>> 		getURL(pageToLoad);
>>>>>>>>> 	}
>>>>>>>>> }
>>>>>>>>> ------------------
>>>>>>>>>
>>>>>>>>> then on(release) of the nav i call
>>>>>>>>>
>>>>>>>>> on(release)
>>>>>>>>> {
>>>>>>>>>    _root.GetPage(_root.HomePage); // or _root.GetPage 
>>>>>>>>> (_root.ContactUs); }
>>>>>>>>>
>>>>>>>>> // the pages are set as constants, so i can do the checking
>>>>>>>>> ------------------
>>>>>>>>>
>>>>>>>>> <script type="text/javascript">
>>>>>>>>>    // <![CDATA[
>>>>>>>>>    var fo = new SWFObject("/swf/navigation.swf", "nav",
>>>>>> "771", "75",
>>>>>>>>> "8", "#FFFFFF");
>>>>>>>>>    fo.write('flash_container');
>>>>>>>>>    // ]]>
>>>>>>>>> </script>
>>>>>>>>>
>>>>>>>>> and the .as file i include for the external interface is this
>>>>>>>>>
>>>>>>>>> import flash.external.ExternalInterface;
>>>>>>>>> /*
>>>>>>>>> * CookieBroker Class to manage javascript cookies within
>>>>>> the flash
>>>>>>>>> movie */ class CookieBroker {
>>>>>>>>> 	//
>>>>>>>>> 	private static var write_cookie:String = "function
>>>>>> set_cookie(name,
>>>>>>>>> value, path) {  var cookie = name + \"=\" + 
>> escape(value) + \"; 
>>>>>>>>> path=\"
>>>>>>>>> + escape(path); document.cookie = cookie; }";
>>>>>>>>> 	//
>>>>>>>>> 	private static var get_cookie:String = "function
>>>>>>>>> get_cookie(cookie_name) { var results = 
>>>>>>>>> document.cookie.match(cookie_name + '=(.*?)(;|$)'); if 
>>>> (results) 
>>>>>>>>> return (unescape(results[1])); else return null; }";
>>>>>>>>> 	//
>>>>>>>>> 	private static var remove_cookie:String = "function 
>>>>>>>>> removeCookie(name){var cookie = name + \"=\";cookie += '; 
>>>>>>>>> expires=Fri, 02-Jan-1970 00:00:00 GMT';document.cookie =
>>>>>> cookie;}";
>>>>>>>>> 	//
>>>>>>>>> 	public static function SetCookie(name:String, 
>>>> value:String, 
>>>>>>>>> path:String):Void
>>>>>>>>> 	{
>>>>>>>>> 		ExternalInterface.call(write_cookie, 
>>>> name, value, path);
>>>>>>>>> 	}
>>>>>>>>> 	//
>>>>>>>>> 	public static function GetCookie(name:String):Object
>>>>>>>>> 	{
>>>>>>>>> 		return ExternalInterface.call(get_cookie, name);
>>>>>>>>> 	}
>>>>>>>>> 	//
>>>>>>>>> 	public static function DeleteCookie(name:String):Void
>>>>>>>>> 	{
>>>>>>>>> 		ExternalInterface.call(remove_cookie, name);
>>>>>>>>> 	}
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> when i run the page in FF there are no problems, but in 
>>>> IE i get 
>>>>>>>>> three errors.
>>>>>>>>>
>>>>>>>>> 1. 'nav' is undefined @ line 0
>>>>>>>>> 2. 'nav' is undefined @ line 0
>>>>>>>>> 3. 'nav' is undefined @ line 55
>>>>>>>>>
>>>>>>>>> any ideas please?
>>>>>>>>>
>>>>>>>>> regards,
>>>>>>>>>
>>>>>>>>> Maurice
>>>>>>>>> Click2Install Software
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> SWFObject mailing list
>>>>>>>>> SWFObject at lists.deconcept.com
>>>>>>>>>
>> http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com
>>>>>>>>> _______________________________________________
>>>>>>>>> SWFObject mailing list
>>>>>>>>> SWFObject at lists.deconcept.com
>>>>>>>>>
>> http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com
>>>>>>>> --
>>>>>>>>
>>>>>>>> MaD Computing Solutions
>>>>>>>>
>>>>>>>> W: http://www.madcomputing.com.au
>>>>>>>> E: info at madcomputing.com.au
>>>>>>>> P: 02 4936 1782
>>>>>>>> M: 0411 416 368
>>>>>>>>
>>>>>>>> ---
>>>>>>>>
>>>>>>>> The information contained in this email is confidential and is 
>>>>>>>> authorised to be viewed by the intended recipient only. If you 
>>>>>>>> receive this email in error please delete it.
>>>>>>>> _______________________________________________
>>>>>>>> SWFObject mailing list
>>>>>>>> SWFObject at lists.deconcept.com
>>>>>>>> http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com
>>>>>>> _______________________________________________
>>>>>>> SWFObject mailing list
>>>>>>> SWFObject at lists.deconcept.com
>>>>>>> http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com
>>>>>>>
>>>>>> --
>>>>>>
>>>>>> MaD Computing Solutions
>>>>>>
>>>>>> W: http://www.madcomputing.com.au
>>>>>> E: info at madcomputing.com.au
>>>>>> P: 02 4936 1782
>>>>>> M: 0411 416 368
>>>>>>
>>>>>> ---
>>>>>>
>>>>>> The information contained in this email is confidential and is 
>>>>>> authorised to be viewed by the intended recipient only. If you 
>>>>>> receive this email in error please delete it.
>>>>>> _______________________________________________
>>>>>> SWFObject mailing list
>>>>>> SWFObject at lists.deconcept.com
>>>>>> http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com
>>>>> _______________________________________________
>>>>> SWFObject mailing list
>>>>> SWFObject at lists.deconcept.com
>>>>> http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com
>>>>>
>>>> -- 
>>>>
>>>> MaD Computing Solutions
>>>>
>>>> W: http://www.madcomputing.com.au
>>>> E: info at madcomputing.com.au
>>>> P: 02 4936 1782
>>>> M: 0411 416 368
>>>>
>>>> ---
>>>>
>>>> The information contained in this email is confidential and 
>>>> is authorised to be viewed by the intended recipient only. If 
>>>> you receive this email in error please delete it.
>>>> _______________________________________________
>>>> SWFObject mailing list
>>>> SWFObject at lists.deconcept.com
>>>> http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com
>>>>
>>>>
>> --------------------------------------------------------------
>> ----------
>>>> _______________________________________________
>>>> SWFObject mailing list
>>>> SWFObject at lists.deconcept.com
>>>> http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com
>> -- 
>>
>> MaD Computing Solutions
>>
>> W: http://www.madcomputing.com.au
>> E: info at madcomputing.com.au
>> P: 02 4936 1782
>> M: 0411 416 368
>>
>> ---
>>
>> The information contained in this email is confidential and is 
>> authorised to be viewed by the intended recipient only. If 
>> you receive 
>> this email in error please delete it.
>>
> _______________________________________________
> SWFObject mailing list
> SWFObject at lists.deconcept.com
> http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com
> 

-- 

MaD Computing Solutions

W: http://www.madcomputing.com.au
E: info at madcomputing.com.au
P: 02 4936 1782
M: 0411 416 368

---

The information contained in this email is confidential and is 
authorised to be viewed by the intended recipient only. If you receive 
this email in error please delete it.



More information about the Swfobject mailing list