[SWFObject] external interface problems

Aran Rhee aran.rhee at qdc.net.au
Mon Oct 16 23:13:02 PDT 2006


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LocalData.as
Type: application/x-stuffit
Size: 1854 bytes
Desc: not available
URL: <http://lists.deconcept.com/pipermail/swfobject-deconcept.com/attachments/20061017/6813159a/attachment-0005.sit>


More information about the Swfobject mailing list