[SWFObject] external interface problems

Aran Rhee aran.rhee at qdc.net.au
Mon Oct 16 22:53:17 PDT 2006


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



More information about the Swfobject mailing list