just be careful not to add any " in between the innerHTML quotes or u'll get a script error, but what this code does is with the onclick even in the link it will embed the flash file dynamically into the page into the span that has an id of flash, and just change the xx's in the height and width to your liking
a) <a href="javascript:void();"... > isn't very accessible.
b) the animation will actually already be embedded; what I'm trying to do is have a link, when clicked, trigger a sound or movement from the animation, without having to have the entire menu in Flash.
Hopefully that clears things up a bit... thanks for your help, though
MVC is the current buzz in web application architectures. It comes from event-driven desktop application design and doesn't fit into web application design very well. But luckily nobody really knows what MVC means, so we can call our presentation layer separation mechanism MVC and move on. (Rasmus Lerdorf)
Last edited by firepages; 01-08-2005 at 12:27 AM..
Hmmm...
I did a quick bit of research, and apparently this should work:
Code:
<script type="text/javascript">
<!--
//<object> with id="movie"
function PassFlash(){
document.getElementById('movie').SetVariable("text", "hello");
}
// <a> with id="playSwf"
document.getElementById('playSwf').onclick = PassFlash;
//-->
</script>
The 'SetVariable' function is from the MM docs, I think it may be horribly out of date (and won't work with IE/mac)
Then you would create an empty, hidden dynamic text field with a var of 'text' (not an instance name of 'text') which would receive the variable. To detect the presence of the variable from Flash, I'd use an onEnterFrame routine that starts the clip and calls 'delete onEnterFrame;' once the var has been found. The downside of this is that the onEnterFrame routine will eat the users resources (only a tiny bit, but still...) until it is told to get lost.
An easier way would be to dynamically insert a flashvar into the object tag, unfortunately those variables are read by flash on load, so you would have to find a way of triggering the flashvar import again, which would probably mean refreshing the <object> tag... not ideal, not at all
I'm happy to nut this one out a bit more, I just don't have Flash at home so I can't test any of these theories
Edit:Forget my insane jibberish -- go with firepages' option!
I'm assuming that I can assign the target of the link to "href" and call the function through "onclick"?
Yep
And you'll also want to 'return false;' so the link isn't followed if js is working.
Actually, how are you handling the detection of flash + js? I'm thinking the JS should try and pull a variable or reference the Flash and if it can't (which means flash isn't supported) then it doesn't add the onclick to the link either. That way if the user has javascript but not flash, the link will still point to the html page in the href... does that sound feasible? Maybe I'm off track...
Actually, how are you handling the detection of flash + js? I'm thinking the JS should try and pull a variable or reference the Flash and if it can't (which means flash isn't supported) then it doesn't add the onclick to the link either. That way if the user has javascript but not flash, the link will still point to the html page in the href... does that sound feasible? Maybe I'm off track...
Oh man, there you go offering valuable, accessible advice that only makes me work harder
I was just planning to offer text link alternatives, but your method seems like something I should at least try. Again, I am a total js/flash newbie, so this might take awhile The Flash, btw, is only for a silly effect; there's a floating head that makes comments based on your navigation choices. (yes, this is a fun website I'm working on!)