Jump to content


  • Posts

  • Joined

  • Last visited

Posts posted by jguthrie

  1. Yes I can try to get some sample files to you. (I will email them)


    No reason in particular (but that may be my problem) just that I saw that code on a post somewhere and used it... Would you recommend I do this?

    _videoLoader.addEventListener(VideoLoader.VIDEO_BUFFER_EMPTY, videoBufferEmpty);
    		_videoLoader.addEventListener(VideoLoader.VIDEO_BUFFER_FULL, videoBufferFull);
    protected function videoBufferEmpty(event:LoaderEvent):void
    	protected function videoBufferFull(event:LoaderEvent):void

  2. Would there be anything that would cause the buffer to empty (and subsequently fire the "NetStream.Buffer.Empty" event) when the video finishes playing? I can play the video 2 or 3 times but eventually the buffer will empty, at which point the buffering screen shows. (Because I want to show this when the vid needs to buffer)


    //for loading video
    protected function loadVideo():void {
    		_sVideoHolder.alpha = 0;
    		_videoLoader = new VideoLoader(_videoUrl, {name:"theVideo", container:_sVideoHolder, width:960, height:540, autoPlay:false, volume:1, bufferMode:true, bufferTime: 20, smoothing:true, requireWithRoot: this.root, onError: videoErrorHandler, onFail: videoFailHandler, onProgress:videoProgressHandler, onComplete:videoCompleteHandler, onHTTPStatus:videoHTTPStatus} );
    		_videoLoader.addEventListener(VideoLoader.VIDEO_CUE_POINT, videoCuePointHandler);
    		_videoLoader.addEventListener(NetStatusEvent.NET_STATUS, videoNetStatusHandler);
    //for responding to events
    protected function videoNetStatusHandler (event:LoaderEvent):void {
    		MonsterDebugger.trace(this, 'ChristmasCampaignVideo.videoNetStatusHandler event: ' + event);
    		MonsterDebugger.trace(this, 'ChristmasCampaignVideo.videoNetStatusHandler: ' + event.data.code);
    		switch (event.data.code) {
    			case "NetStream.Play.Start" :
    			case "NetStream.Buffer.Empty" :
    				trace('videoNetStatusHandler, VIDEO_BUFFER_EMPTY _currentAnimation: ' + _currentAnimation);
    					_sBufferScreen.visible = true;
    				MonsterDebugger.trace(this, 'videoNetStatusHandler, VIDEO_BUFFER_EMPTY');
    			case "NetStream.Play.Stop" :
    			case "NetStream.Buffer.Full" :
    				_sBufferScreen.visible = false;
    				trace('videoNetStatusHandler, VIDEO_BUFFER_FULL');
    				MonsterDebugger.trace(this, 'videoNetStatusHandler, VIDEO_BUFFER_FULL');
    			case "NetStream.Buffer.Flush" :
    			case "NetStream.Seek.InvalidTime" :

  3. import flash.display.MovieClip;
    import com.greensock.*;
    import com.greensock.easing.*;
    //declares variables
    var mousePositionX:Number = 0;
    var mousePositionY:Number = 0;
    //adds the event listener
    stage.addEventListener(MouseEvent.CLICK, onClickHandler, false, 0, true);
    //assigns variables and moves the object
    function onClickHandler(event:MouseEvent):void
       mousePositionX = event.target.mouseX;
       mousePositionY = event.target.mouseY;
    var mc:MovieClip = createBullet();
       TweenMax.to(mc, .5, {x:mousePositionX, y:mousePositionY});
    function createBullet():MovieClip {
    var bullet:Bullet = new Bullet();
    // define bullet start point and speed
    //bullet.speed = 3;
    bullet.x = 275; //based on a stage width of 550, having it start in middle
    bullet.y = 400;
    return bullet;


    I swapped the capitalization of Bullet compared to your code but this should work. As far as having it carry through the point where you click, that may need to involve some trig and I am too far out of school to remember how to do that... ?

  4. I actually dont mind it in that I 'know' when the main.swf has finished loading and when loading the video has started.


    Except I am finding out in an odd way. Since preloader.swf is using loadermax to only load in main.swf, I 'discover' when main.swf has loaded when a netstatus event of the video fires "NetStream.Play.Start" ...


    It may be handy to have the preloader load the main.swf and the video but the video needs to play 'within' main.swf and I wasnt sure how to hand off the video loader to main.swf...


    Any ideas for that?

  5. But the video would resume playing before the VideoLoader becames empty correct?


    Sorry I should have wrote:

    But the video would resume playing before the buffer became full correct? I have the initial buffering amount set at 20 secs so would that mean it would wait to buffer another 20 secs before playing?


    I just want to know when to show/hide my 'buffering animation'.



  6. It seems that when my preloader loads the main swf, it loads it twice. The textfield that is used to report the progress starts at a random percentage, then goes up to 99, then resets to 0 and goes back up...


    Any ideas on why this would occur? I was wondering if the initial call that LoaderMax makes to determine the size would cause this...

    package {
    import com.greensock.TimelineLite;
    import com.greensock.TweenLite;
    import com.greensock.easing.*;
    import com.greensock.events.LoaderEvent;
    import com.greensock.loading.SWFLoader;
    import flash.display.DisplayObjectContainer;
    import flash.display.Loader;
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.events.ProgressEvent;
    import flash.events.SecurityErrorEvent;
    import flash.events.StatusEvent;
    import flash.media.Sound;
    import flash.net.URLRequest;
    import flash.system.Security;
    import flash.text.TextField;
    import flash.utils.getTimer;
    import flash.external.ExternalInterface;
    public class ChristmasPreLoader extends MovieClip {
    	//public var _queue:LoaderMax;
    	private var _swfLoader:SWFLoader;
    	//public var _sSponsorButton:SimpleButton;
    	public var _sSponsorText:TextField;
    	public var _sLoading_txt:TextField;
    	public var _sPattern_mc:MovieClip;
    	public var _sStitches:MovieClip;
    	public var _sDrop_mc:MovieClip;
    	public var _sBrownBucket:MovieClip;
    	public var _sMaskBucket:MovieClip;
    	private var _preLoaderTL:TimelineLite = new TimelineLite();
    	private var _bucketTL:TimelineLite = new TimelineLite();
    	public function ChristmasPreLoader():void {
    		addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true); 
    	private function init(e:Event):void {
    		stage.showDefaultContextMenu = false;
    		stage.scaleMode = StageScaleMode.NO_SCALE;
    		stage.align = StageAlign.TOP_LEFT;	
    		//, estimatedBytes:900200
    		_swfLoader = new SWFLoader( "ChristmasCampaignVideo.swf", {container:this, alpha:0, onProgress:progressHandler, onComplete:completeHandler, onError:errorHandler});
    		_preLoaderTL.append(TweenLite.to(_sDrop_mc, 1, {y: 370, ease:Expo.easeIn}));
    		_preLoaderTL.append(TweenLite.to(_sDrop_mc, .01, {y: -70, onComplete:dropWater }));
    		_bucketTL.append(TweenLite.to(_sPattern_mc, 1, {rotation: 15}));
    		_bucketTL.append(TweenLite.to(_sPattern_mc, 1, {rotation: -15}));
    		_bucketTL.append(TweenLite.to(_sPattern_mc, .5, {rotation: 0, onComplete:rotateBucket}));
    		//_sSponsorButton.addEventListener(MouseEvent.CLICK, sponsorClick, false, 0, true);
    		removeEventListener(Event.ADDED_TO_STAGE, init);
    	private function rotateBucket():void {
    	private function dropWater():void {
    	protected function errorHandler(event:Event):void {
    		trace("ChristmasPreLoader SWFLoader.errorHandler");
    	private function progressHandler(e:LoaderEvent):void {
    		var perc:Number = e.target.progress;
    		//trace("progress: " + e.target.progress);
    		_sLoading_txt.text = 'Loading ' + Math.ceil(perc*100).toString() + '%';
    		_sPattern_mc.y = 466 - (80 * perc);
    	private function completeHandler(event:LoaderEvent):void {		
    		_sLoading_txt.text = "Loaded!";
    		//TweenLite.to(_sSponsorButton, 1,{alpha:0});
    		TweenLite.to(_sSponsorText, 1,{alpha:0});
    		TweenLite.to(_sPattern_mc, 1,{alpha:0});
    		TweenLite.to(_sStitches, 1,{alpha:0});
    		TweenLite.to(_sDrop_mc, 1,{alpha:0});
    		TweenLite.to(_sLoading_txt, 1,{alpha:0});
    		TweenLite.to(_sBrownBucket, 1,{alpha:0, onComplete: cleanUp});
    	protected function sponsorClick(event:MouseEvent):void {
    		try {
    		} catch (e:Error) {
    			trace('ChristmasPreLoader.sponsorClick error ' + e);
    	private function cleanUp():void {
    		//_sSponsorButton = null;
    		_sSponsorText = null;
    		_sPattern_mc = null;
    		_sStitches = null;
    		_sDrop_mc = null;
    		_sLoading_txt = null;
    		_sMaskBucket = null;
    		_sBrownBucket = null;
    		//Fade in main swf
    		TweenLite.to(_swfLoader.content, 1, {alpha:1, onComplete: callOnComplete});
    	private function callOnComplete():void {
    		try {
    		} catch (e:Error) {
    			trace('ChristmasPreLoader.sponsorClick error ' + e);
    	private function onLocalConnectionStatus(event:StatusEvent):void {
    		switch (event.level) {
    			case "status":
    				trace("SiteLoadingTimeTracking - LocalConnection.send() succeeded");
    			case "error":
    				trace("SiteLoadingTimeTracking - LocalConnection.send() failed");

  7. Yes it should be the latest as I have downloaded the swc from you (in the my account section) just a few days ago.


    The buffer trace says its full when i start to play. (vid loads instantly as i am running locally)...


    I think it had something to do with calling the CasaMovieClip.destroy() method. The code below is a bit old. What I did was move the playVideo() to be the last thing in the playPauseHandler() and I have not had the problem since...


    Here's my code:


    private var _videoLoader:VideoLoader;
    private function init ():void {
    _sVideoHolder.alpha = 0;
    		_sPlayButton.addEventListener (MouseEvent.CLICK, playPauseHandler);
    		_sPlayButton.buttonMode = true;
    protected function loadVideo():void {
    _videoLoader = new VideoLoader("../video/myvid.f4v", {name:"theVideo", container:_sVideoHolder, width:960, height:540, autoPlay:false, volume:1, bufferTime: 10, smoothing:true, requireWithRoot:this.root, onError: videoErrorHandler, onFail: videoFailHandler, onProgress:videoProgressHandler, onComplete:videoCompleteHandler, onHTTPStatus:videoHTTPStatus} );
    		_videoLoader.addEventListener(VideoLoader.VIDEO_CUE_POINT, videoCuePointHandler);
    		_videoLoader.addEventListener(NetStatusEvent.NET_STATUS, videoNetStatusHandler);
    protected function playPauseHandler (event:MouseEvent):void {
    		if(_firstClick) {
    		} else {
    			_videoLoader.videoPaused = !_videoLoader.videoPaused;
    protected function onFirstClick():void {
    		_sVideoHolder.alpha = 1;
    		_firstClick = false;
    protected function clearAnimations():void {
    		try {
    			trace('clearAnimations: removed child');
    		} catch(e:Error) {
    			trace('clearAnimations: no firstChildExists');

  8. Ah ok. I was looking in the docs and there is this line:

    myTimeline.insertMultiple([new TweenLite(mc, 1, {y:"100"}), new TweenLite(mc2, 1, {x:120}), new TweenLite(mc3, 1, {alpha:0.5})], 0, TweenAlign.START, 0.2);




    But i see now that each TweenLite is just tweening one movieclip... Probably cleaner to do it with the method I did above (well easier to read anyway) and it achieves what I want so I suppose it doesnt really matter ;)



  9. Thanks for those files. For some reason it isnt letting me use the array method to add to this tween.


    This works but would like to be able to do it with just one appendMultiple call...

    private var dancersTimeline:TimelineLite = new TimelineLite({paused:true});
    dancersTimeline.insertMultiple(TweenMax.allTo(_peopleBig_arr, .2, { repeat: -1, yoyo:true, y:"-3" } ));
    		dancersTimeline.insertMultiple(TweenMax.allTo(_peopleMed_arr, .2, { repeat: -1, yoyo:true, y:"-4" } ));
    		dancersTimeline.insertMultiple(TweenMax.allTo(_peopleSma_arr, .2, { repeat: -1, yoyo:true, y:"-5" } )); 
    		dancersTimeline.insertMultiple(TweenMax.allTo(_peopleXsm_arr, .2, { repeat: -1, yoyo:true, y:"-5" } ));