For sake of timeliness I used an ExternalInterface communication method that was JS native, not MooTools. I will have to spend some more time with this to figure out how to use Swiff more accurately. Definitely needs to be more documentation on how to use Swiff inside a custom-defined Class. Thanks!
On Oct 11, 10:24 am, Philip Thompson <[email protected]> wrote: > Welcome to the group! One of the first things you'll learn is to utilize > JSFiddle (http://jsfiddle.net/). It's a lovely utility that will allow us to > play along with your code to try and resolve the issue you're having. Create > a fiddle of your code here and then post us the link. > > Thanks, > ~Philip > > On Tue, Oct 11, 2011 at 9:13 AM, t.patrick.welborn < > > > > > > > > > > [email protected]> wrote: > > Hello! I am new to the Group and I need help. > > > I have no idea how to use Swiff.remote. The MooTools documentation is > > limited on the subject, and the dozens of forum posts I have read > > since 2008 never give a consistent explanation on how to work it. The > > ExternalInterface setup in worked fine with my previous swfobject > > solution, but it won't work with MooTools Swiff. Looking at this code, > > can anyone offer up suggestions on how to write the Swiff.remote code > > to call my SWF function? I have been banging my head against a wall > > for 8 hours on this one. > > > This script loads a dynamic number of SWFs into the appropriate > > container objects in the markup. It loads the SWFs fine, and the code > > runs without generating errors. However, it will not call my functions > > in the SWF. > > > ---------------------------------------- > > ---------------------------------------- > > JavaScript: > > > var Slider2D = new Class({ > > //_slideIndex declaration value must be -1 > > _slideIndex: -1, > > //timer variable for automatically scrolling slideshow > > slideTimer: 0, > > initialize: function(options){ > > this.options = options; > > var navigation = new > > Element('ul').inject('slideNavigation'); > > > //declare slide container dimensions > > $$('#carousel ul, #slideNavigation').setStyles({ > > 'height': options.height, > > 'width': options.width > > }); > > > $$('#carousel ul li').each(function(slideItem, slideId, > > slideContainer){ > > //declare slide dimensions and position > > slideItem.setStyles({ > > 'height': options.height, > > 'left': (options.width * (slideId + 1)), > > 'width': options.width > > }); > > > //create navigation button for each slide > > var navigationButton = new Element('li') > > .set('text', (slideId + 1)) > > .addEvents({ > > click: function(){ > > //change slide index when > > user clicks navigation button > > this.slideIndex(slideId); > > }.bind(this), > > mouseover: function(){ > > this.addClass('over'); > > }, > > mouseout: function(){ > > this.removeClass('over'); > > } > > }) > > .inject(navigation); > > }.bind(this)); > > > this.loadSwfs(options.swfs); > > }, > > //automatically increment slide index when timer fires > > incrementSlideIndex: function(){ > > this.slideIndex(this._slideIndex + 1); > > }, > > slideIndex: function(value){ > > //only modify slide index if slider is not paused and > > current > > selection is different than previous selection > > if(this._slideIndex != value){ > > //try removing navigation button down state style > > and clearing the > > slide timer interval each time slide index changes > > try{ > > $$('#slideNavigation ul li') > > [this._slideIndex].removeClass('down'); > > clearInterval(this.slideTimer); > > }catch(error){ > > // > > } > > //if the slide index reaches the end, then reset to > > the first slide > > if(this._slideIndex == ($$('#carousel ul li').length > > - 1)){ > > this._slideIndex = 0; > > > }else{ > > this._slideIndex = value; > > } > > if($$('#carousel ul > > li')[this._slideIndex].getProperty('class') == > > "swfSlide"){ > > }else{ > > this.slideTimer = > > this.incrementSlideIndex.periodical(this.options.duration, this); > > } > > //animate the slides > > $$('#carousel ul li').each(function(slideItem, > > slideId, > > slideContainer){ > > slideItem.tween('left', (-1 * > > (this._slideIndex - (slideId)) * > > slideItem.getStyle('width').replace('px', ''))); > > > }.bind(this)); > > > //display the down style for the navigation button > > $$('#slideNavigation ul > > li')[this._slideIndex].addClass('down'); > > > } > > }, > > loadSwfs: function(swfs){ > > var i = 0; > > Object.each(swfs, function(value, key){ > > var swfSlide = new Swiff(value, { > > id: key, > > width: 970, > > height: 355, > > params: { > > name: key, > > quality: 'high', > > wMode: 'transparent', > > allowScriptAccess: 'always' > > }, > > container: $$('#carousel ul li.swfSlide')[i] > > }); > > i++; > > }); > > this.slideIndex(0); > > } > > }); > > > function resumePlayback(){ > > slider2d.slideTimer = > > slider2d.incrementSlideIndex.periodical(slider2d.options.duration, > > slider2d); > > } > > ---------------------------------------- > > ---------------------------------------- > > ActionScript: > > > package com.lightpail.creativeSpark > > { > > import flash.display.MovieClip; > > import flash.events.ErrorEvent; > > import flash.events.Event; > > import flash.events.MouseEvent; > > import flash.events.ProgressEvent; > > import flash.events.StatusEvent; > > import flash.events.TimerEvent; > > import flash.external.*; > > import flash.system.Security; > > import flash.ui.Mouse; > > import flash.ui.MouseCursor; > > import flash.utils.Timer; > > > public class SWFPlayerStage extends MovieClip > > { > > public var _isPlaying:Boolean = new Boolean(); > > > public function SWFPlayerStage():void > > { > > ExternalInterface.addCallback("toggleSwfSlide", > > toggleSWFPlayer); > > ExternalInterface.addCallback("resetSwfSlide", > > resetSWFPlayer); > > > this.addEventListener(Event.ENTER_FRAME, > > > function(event:Event):void{ > > > if(event.currentTarget.currentFrame == > > event.currentTarget.totalFrames){ > > > event.currentTarget.removeEventListener(Event.ENTER_FRAME, > > arguments.callee); > > > event.currentTarget.stop(); > > > ExternalInterface.call("resumePlayback"); > > > } > > }); > > > } > > > public function toggleSWFPlayer():void > > { > > isPlaying = !isPlaying; > > } > > > public function resetSWFPlayer():void > > { > > this.gotoAndStop(1); > > } > > > public function get isPlaying():Boolean > > { > > return _isPlaying; > > } > > public function set isPlaying(value:Boolean):void > > { > > _isPlaying = value; > > this.gotoAndPlay(1); > > > } > > > private function replayButtonRollOver(event:MouseEvent):void > > { > > Mouse.cursor = flash.ui.MouseCursor.BUTTON; > > } > > private function replayButtonRollOut(event:MouseEvent):void > > { > > Mouse.cursor = flash.ui.MouseCursor.ARROW; > > } > > } > > } > > --http://lonestarlightandsound.com/
