PDA

Volledige versie bekijken : solved Extreme Gallery (EXPERTS)


miep
%Europe/Berlin %911 %2008, 22:52
Hier is een linkje naar de versie online

http://royalinvest.lionhead.nl/Properties.html





2 Big problems.. en ik krijg ze niet op gelost.

- de fout melding zit op regel 106
startGallery(idThumb);
// ik heb geen idee hoe ik in die functie deze eerst moet declaren. blijkbaar is dat nodig..

- waarom wordt de disableBlur event steeds getriggerd terwijl de ROLL_OUT daar verbuiten ligt? daarom is de gallery onderaan ook niet soepel. Ik wil graag dat de disableBlur pas wordt getrigger zodra je uit de container gaat met je muis.





Iemand enig idee?
In de bijlage zitten alle files die je nodig hebt om het zo werkend thuis te krijgen.




//Copyright Lionhead Bv
//for commercial use contact michiel@lionhead.nl


//Import
import fl.transitions.Tween;
import fl.transitions.easing.*;
import caurina.transitions.Tweener;
import gs.TweenLite;
import gs.TweenFilterLite;

//XML inladen
var imageLoader:Loader;
var xmlURL:URLLoader = new URLLoader();
var xml:XML;
var xmlList:XMLList;
xmlURL.load(new URLRequest("images.xml"));

xmlURL.addEventListener(Event.COMPLETE, xmlLoaded);

function xmlLoaded(event:Event):void
{
xml = XML(event.target.data);
xmlList = xml.children();
startGallery(idThumb);

}

// Scroller vars

var minScroll:Number = slider.sliderBar.x; //movieclip onstage
var maxScroll:Number = slider.sliderBar.width;
var scrollInterval:Number = maxScroll - minScroll;
var draging:Boolean = false;
var scrolling:Boolean = false;
var bounds:Rectangle = new Rectangle(slider.sliderKnop.x,slider.sliderKnop.y, slider.sliderBar.width, 0);
var xmask:Number;
var xmaskmax:Number;
var afstand:Number;


//thumb vars
var image:MovieClip;
var container:MovieClip;
var currentImage:int;
var imagePreloader:MovieClip;
var idThumb:int = 0;


// Build container

container = new MovieClip();
container.x = 25;
container.y = 40;
imagePreloader = new Imagepreloader(); //my preloader
imagePreloader.y = container.y + 50;
container.mouseEnabled = false;
addChild(imagePreloader);
addChild(container);
container.addEventListener(MouseEvent.MOUSE_OUT, disableBlur);

function startGallery(idThumb)
{

imageLoader = new Loader();
imageLoader.contentLoaderInfo.addEventListener(Pro gressEvent.PROGRESS, handleProgress);
imageLoader.contentLoaderInfo.addEventListener(Eve nt.COMPLETE, handleComplete);
imageLoader.load(new URLRequest(xmlList[idThumb].attribute("source")));
}

function handleProgress(event:ProgressEvent):void
{

var procent:Number = Math.floor(event.bytesLoaded / event.bytesTotal *100);
imagePreloader.visible = true;
imagePreloader.x = 25 + container.x + (idThumb * 125);
imagePreloader.preloaderText.text = procent + "%";
}

// load thumbs 1 by 1
function handleComplete(event:Event):void
{

imagePreloader.visible = false;
image = new Image();
image.name = String(idThumb);
image.imagePlaceHolder.buttonMode = true;
image.x = idThumb * 125 + 50;
image.y = 50;
image.imagePlaceHolder.addChild(imageLoader);
image.imageTxt.text = xmlList[idThumb];
image.imageTxt.antiAliasType = AntiAliasType.ADVANCED;
image.imageTxt.autoSize = TextFieldAutoSize.CENTER;
image.imageTxt.textColor = 0x093457;
image.addEventListener(MouseEvent.ROLL_OVER, enableBlur);
image.imagePlaceHolder.addEventListener(MouseEvent .CLICK, clickURL);
image.alpha = 0;

Tweener.addTween(image, {alpha:1, time:2, transition:"easeOut"});
container.addChild(image);

if (idThumb < xmlList.length())
{
idThumb++;
imageLoader.contentLoaderInfo.removeEventListener( Event.COMPLETE, handleComplete);
startGallery(idThumb);// FLASH WHY DONT U UNDERSTAND THIS?
}
if (idThumb == xmlList.length()-1)
{

xmask = container.x;
xmaskmax = (xmask - container.width) + maxScroll;//mask size
afstand = xmaskmax-xmask;

/* //misschien op een andere MovieClip het disableBlur event?
var henk:MovieClip = new MovieClip();
henk.graphics.beginFill(0x000000);
henk.graphics.drawRect(container.x, container.y, 600,150);
henk.graphics.endFill();
henk.alpha = 0.5;
henk.addEventListener(MouseEvent.MOUSE_OUT, disableBlur);
addChild(henk);
*/
}
}


function enableBlur(event:MouseEvent):void
{

currentImage = parseInt(event.target.name);

for (var i:int = 0; i < idThumb; i++)
{


if (currentImage != i)
{

//container.addEventListener(TweenEvent.MOTION_FINIS H, disableBlur); How to test this? on the twweener
Tweener.addTween(container.getChildAt(i), {scaleX:0.8,scaleY:0.8, alpha:0.7, time:2, transition:"easeOutElastic"});
TweenFilterLite.to(container.getChildAt(i), 1, {blurFilter:{blurX:2, blurY:2, quality:5, ease:Elastic.easeOut}});


}

}
Tweener.addTween(container.getChildAt(currentImage ), {scaleX:1,scaleY:1, alpha:1, time:2, transition:"easeOutElastic"});
container.getChildAt(currentImage).filters = null;

}

// remake the thumbs if move out of the container
function disableBlur(event:MouseEvent):void
{

// try not to active disableBlur event...if enableBlur is active HOW???
for (var i:int = 0; i < xmlList.length(); i++)
{
Tweener.addTween(container.getChildAt(i),{scaleX:1 ,scaleY:1, alpha:1, time:2, delay:0.5, transition:"easeOutElastic"});
//Tweener.addTween(containerText.getChildAt(i), {scaleX:1,scaleY:1, alpha:1, time:2, delay:0.5,transition:"easeOutElastic"});
TweenFilterLite.to(container.getChildAt(i),1,{blur Filter:{blurX:0, blurY:0, quality:3, ease:Elastic.easeOut}, delay:0.5});
//TweenFilterLite.to(containerText.getChildAt(i), 1,{blurFilter:{blurX:0, blurY:0, quality:3, ease:Elastic.easeOut}, delay:0.5});

}
}


//build mask
function buildBg()
{

var w:uint = 605;
var h:uint= 140;


var bgColor:uint = 0x000000;
var borderColor:uint = 0x666666;
var borderSize:uint = 1;
var cornerRadius:uint = 9;
var gutter:uint = 5;
var child:Shape = new Shape();



child.graphics.beginFill(bgColor);
child.graphics.lineStyle(borderSize, borderColor);
child.graphics.drawRoundRect(0, 0, w, h, cornerRadius);
child.graphics.endFill();
child.x = container.x;
child.y = container.y -10;
container.mask = child;


}

//buildslider
slider.sliderKnop.buttonMode = true;
slider.sliderKnop.addEventListener(MouseEvent.MOUS E_DOWN,beginDrag);

function beginDrag(event:MouseEvent):void
{
slider.sliderKnop.startDrag(false,bounds);
draging = true;
slider.sliderKnop.addEventListener(Event.ENTER_FRA ME,checkingProgress);

stage.addEventListener(MouseEvent.MOUSE_UP,endDrag );
//container.removeEventListener(Event.SCROLL,updateS crollHandler);
}


function endDrag(event:MouseEvent):void
{
slider.sliderKnop.stopDrag();
draging = false;

}

function checkingProgress(event:Event):void
{

var moveDrag:Number = slider.sliderKnop.x - minScroll;
var procentDrag = moveDrag/scrollInterval;
var per:Number = Math.round((procentDrag) * 100);
if (draging)
{
var stand:Number = (per/100)* afstand;
var deX:Number= xmask + stand;
Tweener.addTween(container, {x:deX, time:2, transition:"easeOut"});


}

}

function clickURL(event:MouseEvent):void
{
//var percent:Number = Math.round( event.bytesLoaded / event.bytesTotal * 100 );
var url:String = "http://site";
var request:URLRequest = new URLRequest("javascript:" + xmlList[currentImage].attribute("url"));
try
{
navigateToURL(request, '_self');
}
catch (e:Error)
{
trace("Error occurred!");
}

}

miep
%Europe/Berlin %707 %2008, 17:59
iemand al gekeken? :)

die regel 106 iig irritant.

theFlashWizard
%Europe/Berlin %755 %2008, 19:08
Ik help mensen liever zonder al hun code te moeten doorlopen en dingen te moeten downloaden.
Waarom vertel je daarom niet wat de foutmelding is?
Daarnaast schijn ik authentificatie nodig te hebben om naar die link te gaan?

Waarom gebruik je in die functie eigenlijk helemaal geen datatypes?
function startGallery(idThumb:int):void
{
var imageLoader:Loader = new Loader();
...

miep
%Europe/Berlin %771 %2008, 19:30
ja dat kan inderdaad.. maar het verhelpt het probleem niet :(

de login voor die site is
user:demo
pass:demo

thanks for reactie

miep
%Europe/Berlin %819 %2008, 20:39
TypeError: Error #1010: A term is undefined and has no properties.

dit was de error

functie kreeg geen waarde mee... en daardoor werd hij 1 keer te veel aangeroepen...

opgelost dus!




nu nog de MouseEvent. die door elkaar heen lopen te klooien..

Neuro
%Europe/Berlin %832 %2008, 20:58
lijn 103
if (idThumb < xmlList.length()-1)
Je probeert 1 maal teveel een image inteladen, daarom een -1 toevoegen :)


Wat je tweens betreft, je gebruikt TweenLite, en Tweener tegelijkertijd, dat is volgens mij geen goed idee. Tweens kunnen elkaar gaan tegen werken.

maargoed, je container, om te beginnen zal je er iets anders moeten insteken dan enkel de thumbs, als je daarop je mouseOut wil trigeren

en

container.mouseEnabled = true

en bij je blur event testen of het event v de container komt

if (event.target == event.currentTarget){

miep
%Europe/Berlin %893 %2008, 22:26
Ik heb ff simpel voorbeeld gemaakt :)

dit is namelijk het problem

other wordt getrigger als je met de andere instantie interfer.. was hier aan te doen?


// main button
var spriteButton:Sprite = new Sprite();
spriteButton.name = "spriteButton";
var other:Sprite = new Sprite();
other.name = "Other";

// graphics
var spriteGraphics1:Sprite = createGraphics("spriteGraphics1", 0xFF, 150, 200, 100);
var spriteGraphics2:Sprite = createGraphics("spriteGraphics2", 0x80, 125, 200, 25);
var spriteGraphics3:Sprite = createGraphics("spriteGraphics3", 0x80, 200, 200, 25);

// add to display list
other.addChild(spriteGraphics1);
spriteButton.addChild(spriteGraphics2);
spriteButton.addChild(spriteGraphics3);
addChild(other);

addChild(spriteButton);

// events
spriteButton.addEventListener(MouseEvent.ROLL_OVER , over);
spriteButton.addEventListener(MouseEvent.ROLL_OUT, out);
other.addEventListener(MouseEvent.ROLL_OVER, over);
other.addEventListener(MouseEvent.ROLL_OUT, out);


function over(evt:MouseEvent):void {
trace("over: " + evt.target.name);
}
function out(evt:MouseEvent):void {
trace("out: " + evt.target.name);
}

// create circles
function createGraphics(name:String, color:uint, x:Number, y:Number, radius:Number):Sprite {
var circle:Sprite = new Sprite();
circle.name = name;
circle.graphics.beginFill(color);
circle.graphics.drawCircle(x, y, radius);
return circle;
}

miep
%Europe/Berlin %035 %2008, 01:51
opgelost!!


other.addChild(spriteButton);

ze moeten genest worden..