Xml gallery
I have a gallery that malfunctions some of the time when you try to explore my website. it is some what complicated to explain so I will describe my set up with the assistance of my code.
SWF file contains this code on the hompage frame:
////BUTTONS//////
stop();
//-----Navigation Buttons ------------//
home_btn.addEventListener(MouseEvent.CLICK, homeclick);
function homeclick(event:MouseEvent):void
gotoAndStop(2);
if(img_holder.stage)
removeChild(img_holder);
port_btn.addEventListener(MouseEvent.CLICK, portclick);
function portclick(event:MouseEvent):void
gotoAndStop(3);
abou_btn.addEventListener(MouseEvent.CLICK, abouclick);
function abouclick(event:MouseEvent):void
gotoAndStop(8);
if(img_holder.stage)
removeChild(img_holder);
blog_btn.addEventListener(MouseEvent.CLICK, blogclick);
function blogclick(event:MouseEvent):void
gotoAndStop(9);
if(img_holder.stage)
removeChild(img_holder);
cont_btn.addEventListener(MouseEvent.CLICK, contclick);
function contclick(event:MouseEvent):void
gotoAndStop(10);
if(img_holder.stage)
removeChild(img_holder);
On my gallery/home page the code looks like:
/////gallery buttons/////////
gal1_btn.addEventListener(MouseEvent.CLICK, gal1click);
function gal1click(event:MouseEvent):void
gotoAndStop(4);
gal2_btn.addEventListener(MouseEvent.CLICK, gal2click);
function gal2click(event:MouseEvent):void
gotoAndStop(5);
gal3_btn.addEventListener(MouseEvent.CLICK, gal3click);
function gal3click(event:MouseEvent):void
gotoAndStop(6);
gal4_btn.addEventListener(MouseEvent.CLICK, gal4click);
function gal4click(event:MouseEvent):void
gotoAndStop(7);
once you've selected a gallery it takes you to that specific gallery.. i have four of them, but gal1 is the only one with as3 because i wanted to get the bugs sorted out before continuing with the other three. The as3 code lookes like this in gallery1:
var xml:XML = new XML();
var img_count:uint;
var loader:URLLoader = new URLLoader();
var img_holder:Sprite=new Sprite();
var sw:Number=stage.stageWidth;
addChild(img_holder);
function xmlloaded(e:Event):void
xml=XML(e.target.data);
img_count = xml.img.length()-1;
for (var i:uint = 0; i<img_count; i++)
var thumb:Sprite=new createThumb(img_holder,String(xml.img[i].@thumburl),String(xml.img[i].@mainurl));
thumb.x=130*i;
img_holder.addChild(thumb);
stage.addEventListener(Event.ENTER_FRAME,mousescroll);
function mousescroll(e:Event):void
var ihw:Number = (img_holder.width-sw+350)*-1;
var percent:Number = 175+(mouseX/sw)*(ihw);
img_holder.x=percent;
loader.load(new URLRequest('photogallery.xml'));
loader.addEventListener(Event.COMPLETE,xmlloaded);
this code calls to an outside xml file, which looks like this:
var img_holder:Sprite=new Sprite();
var thumb:Sprite=new createThumb(img_holder,'smallimage/file.png','largeimage/file.png');
thumb.x=205*i;
img_holder.addChild(thumb);
addChild(img_holder);
package {
import flash.display.Loader;
import flash.display.Sprite;
import flash.display.Bitmap;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.net.URLRequest;
public class createThumb extends Sprite {
private var arraytween:Array = new Array();
private var thumb_loader:Loader;
private var photo_loader:Loader;
private var thumb_url:String;
private var photo_url:String;
private var thumb_bit:Bitmap;
private var photo_bit:Bitmap;
private var mother:Sprite;
private var thumb_btn:Sprite;
public function createThumb(childof:Sprite,thumburl:String,photourl:String) {
mother=childof;
thumb_url=thumburl;
photo_url=photourl;
loadthumb();
private function loadthumb():void {
thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,displaythumb);
private function displaythumb(e:Event):void {
thumb_btn = new Sprite();
thumb_bit= new Bitmap();
thumb_btn.y=(stage.stageHeight-thumb_btn.height)/1.25;
thumb_btn.graphics.beginFill(0x000000,0);
thumb_btn.graphics.drawRect(0,0,125,125);
thumb_btn.graphics.endFill();
thumb_bit=e.target.content as Bitmap;
thumb_bit.y=(stage.stageHeight-thumb_bit.height)/1.045;
thumb_btn.width=thumb_btn.height=thumb_bit.width=thumb_bit.height=125;
thumb_bit.smoothing=true;
addChild(thumb_bit);
addChild(thumb_btn);
thumb_btn.addEventListener(MouseEvent.CLICK,loadphoto);
private function loadphoto(e:Event):void {
arraytween.push(new Tween(mother,"y",Regular.easeOut,mother.y,0,.5,true));
photo_loader = new Loader();
photo_loader.load(new URLRequest(photo_url));
photo_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,displayphoto);
private function displayphoto(e:Event):void {
stage.addEventListener(MouseEvent.CLICK,closephoto);
photo_bit= new Bitmap();
photo_bit=e.target.content as Bitmap;
photo_bit.smoothing=true;
photo_bit.x=(192);
photo_bit.y=(110);
stage.addChild(photo_bit);
private function closephoto(e:Event):void
arraytween.push(new Tween(mother,"y",Strong.easeOut,mother.y,0,.5,true));
arraytween[arraytween.length-1].addEventListener(TweenEvent.MOTION_FINISH,cleartween);
photo_loader.unload();
if(photo_bit.stage)
stage.removeChild(photo_bit);
stage.removeEventListener(MouseEvent.CLICK,closephoto);
//if (photo_bit != null)
// stage.removeChild(photo_bit);
private function cleartween(e:TweenEvent):void
arraytween=[];
thats all of it.. my specific problem can be seen at www.bradleyferguson.com
play around with the 1st gallery which is located under portfolio and is in red.. you'll see what im talking about.
the problem is this line of code ...
if(photo_bit.stage)
stage.removeChild(photo_bit);
it says that it is a null reference when i click on a button, but when i click on the screen it works without error.. it also works when i click on the portfolio button, but like i said when i click on any other button i get an error.
Similar Messages
-
i have a flash & xml gallery source. whatever click the
thumbnails, opening first image. where is the problem? i need help,
please...
Flash & Xml
Gallerythen that's a problem. sometimes your cookie may loaded
sooner than the needed frame in your swf and when you try to go to
a frame that hasn't been downloaded, the swf will stay on frame 1.
i assume you already have a stop() on frame 1 and you check
the cookie's value before proceeding. in addition to waiting for
the cookie to load, you should wait for the needed frame of your
swf to load.
so, if you're not using a loop now to check for your cookie,
you'll need one for your swf to check its _framesloaded property
before advancing the timeline. -
Clear loaded pictures in xml gallery to load another set
i cannot figure how to unload my already populated xml gallery, before loading new content :
here the functions i want :
//following 2 functions will be called by a button :
// removes previously placed objects
function clearLoadedPictures():void {
// Load another ,xml to load new pictures set - ok : works fine
function LoadNewPictures():void {
i_g = 0;
// xml data
var xml_gallery:XML = new XML();
var xml_gallery_List:XMLList = new XMLList;
// XML data loader...
var xmlUrlReq:URLRequest = new URLRequest("xml/gallery2.xml");// gallery2.xml will replace gallery.xml already loaded
var xml_gallery_UrlLoader:URLLoader = new URLLoader(xmlUrlReq);
xml_gallery_UrlLoader.addEventListener(Event.COMPLETE, xml_gallery_Complete);
xml_gallery_UrlLoader.addEventListener(IOErrorEvent.IO_ERROR, xml_gallery_LoadFailed);
here the xml gallery code :
var _mc:item;
var total:int;
var i_g:int;
var id:int;
var btn_Gallery_Ready:Boolean;
var speedX:Number;
var spaceR:Number;
var img_gallery_Loader:Loader;
i_g = 0;
// xml data
var xml_gallery:XML = new XML();
var xml_gallery_List:XMLList = new XMLList;
// XML data loader...
var xmlUrlReq:URLRequest = new URLRequest("xml/gallery.xml");
var xml_gallery_UrlLoader:URLLoader = new URLLoader(xmlUrlReq);
xml_gallery_UrlLoader.addEventListener(Event.COMPLETE, xml_gallery_Complete);
xml_gallery_UrlLoader.addEventListener(IOErrorEvent.IO_ERROR, xml_gallery_LoadFailed);
bottom24.gallery.content_mc.addEventListener(MouseEvent.ROLL_OVER, startScroll);
bottom24.gallery.content_mc.addEventListener(MouseEvent.ROLL_OUT, stopScroll); //
// xmlComplete function
function xml_gallery_Complete(e:Event):void
xml_gallery = XML(e.target.data); //
xml_gallery_List = xml_gallery.item; // <item> in gallery.xml
total = xml_gallery_List.length();
spaceR = xml_gallery.attribute("space"); // specified in gallery.xml file as is : <gallery space="119" speed="0.2">
speedX = xml_gallery.attribute("speed");
init_gallery();
function xml_gallery_LoadFailed(e:IOErrorEvent):void {
trace("Load Failed: " + e);
function init_gallery() //
//bottom.gallery.content_mc.itemHolder_mc.
_mc = new item(); //
_mc.alpha = 0;
//_mc.imgMask_mc.scaleY = 0; // condition pour apparition des timbres ds la gallery - OLD
_mc.imgMask_mc.alpha = 0; // condition pour apparition des timbres ds la gallery - NEW
_mc.x = i_g * spaceR;
_mc.btn.id = i_g;
_mc.btn.mouseChildren = false;
bottom24.gallery.content_mc.itemHolder_mc.addChild(_mc);
Tweener.addTween(_mc, {alpha:1, time:0.8, transition:"easeOutExpo"});
_mc.online_mc.alpha = 0; //invisible sans roll over
if (xml_gallery_List[i_g].url != "")
_mc.btn.buttonMode = true;
_mc.online_mc.visible = true;
btn_Gallery_Ready = true;
else
_mc.btn.buttonMode = false;
_mc.online_mc.visible = false;
btn_Gallery_Ready = false;
var imgRequest:URLRequest = new URLRequest (xml_gallery_List[i_g].image); //
img_gallery_Loader = new Loader(); // var imgLoader:Loader;
img_gallery_Loader.load(imgRequest); //
img_gallery_Loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imgLoading);
img_gallery_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, img_gallery_Complete);
i_g++;
function imgLoading(event:ProgressEvent):void // tiny preloader in bottom thumbs pics
_mc.preloader_mc.width = Math.round(img_gallery_Loader.contentLoaderInfo.bytesLoaded / img_gallery_Loader.contentLoaderInfo.bytesTotal * 100);
function img_gallery_Complete(event:Event):void
_mc.imgHolder_mc.addChild(img_gallery_Loader);
Tweener.addTween(_mc.imgHolder_mc, {_saturation:0.9, time:0.6});// desaturate scrolling thumbs
//_mc.imgHolder_mc.alpha = 0.5; // test
// apparition des timbres ds la gallery, ici fade in : - NEW
Tweener.addTween(_mc.imgMask_mc, {"alpha":1, delay:i_g / 20, time:0.4, transition:"easeOutExpo"});// test
// apparition des timbres ds la gallery, ici image apparait de haut en bas : - OLD
//Tweener.addTween(_mc.imgMask_mc, {"scaleY":1, delay:i_g / 10, time:1, transition:"easeOutExpo"});
// la ligne de preloader qui diminue vers la gauche :
Tweener.addTween(_mc.preloader_mc, {"scaleX":0, delay:0, time:1, transition:"easeOutExpo"});
_mc.btn.addEventListener(MouseEvent.ROLL_OVER, onMouseOver);
_mc.btn.addEventListener(MouseEvent.ROLL_OUT, onMouseOut);
_mc.btn.addEventListener(MouseEvent.CLICK, onMouseClick);
if (i_g < total)
init_gallery();
thankshi,
back to work,
then i used a loop in the first clear function:
var n:int = 0;
while (n < xml_gallery_List.length() -1) {
bottom24.gallery.content_mc.itemHolder_mc.removeChildAt(n); //
i++;
and it remove all my previously loaded pictures,but it throw me an error :
RangeError: Error #2006: The supplied index is out of bounds.
at flash.display: DisplayObjectContainer/removeChildAt()
it seems error come from the removeChildAt, but i can't figure out what's wrong
i've tried to replace removeChildAt(n); by removeChild(n); and the loop crash Flash software....
any suggestion ? -
I need help with XML Gallery Fade in out transition. somebody please help me :(
I need help with XML Gallery Fade in out transition. somebody please help me
I have my post dont want to duplicate itThe problem doesn't lie with your feed, although it does contain an error - you have given a non-existent sub-category. You need to stick to the categories and sub-categories listed here:
http://www.apple.com/itunes/podcasts/specs.html#categories
Subscribing to your feed from the iTunes Store page work as such, but the episodes throw up an error message. The problem lies with your episode media files: you are trying to stream them. Pasting the URL into a browser produces a download (where it should play the file) of a small file which does not play and in fact is a text file containing (in the case of ep.2) this:
[Reference]
Ref1=http://stream.riverratdoc.com/RiverratDoc/episode2.mp3?MSWMExt=.asf
Ref2=http://70.33.177.247:80/RiverratDoc/episode2.mp3?MSWMExt=.asf
You must provide a direct link to the actual mp3 file. Streaming won't work. The test is that if you paste the URL of the media file (as given in the feed) into the address bar of a browser it should play the file. -
Xml gallery with thumbnails & next/previous buttons.
hallo all the wise people,
sorry to bother you, but i'm kind of desperate, and nobody around to ask, so....
i've spend now three full days editing an xml gallery... to my needs, and always goes messy, so maybe it's time give up and make my own from the scratch, or looking from a one closer to my needs =/ (helpless).
could anyone help - maybe any of you by some chance knows a link as close as possible to tutorial/source as3 fla to sthg as close as possible to this:
a) xml gallery
b) thumbnails
c) when thumbnail clicked a big picture shows
d) next/previous buttons possible
otherwise, i can also post the code of my gallery where i absolutely can't add next/previous buttons without making a big mess =/
i will be totally youbie doubie grateful for any help... any, if you only know any good link, 'll try to fugure out a tutorial or edit the source myself....
thanks in advanceheyyyo wise one,
at least this is really nice of you to ask - this gallery really makes me by now feel twice as blond as i am 8-0. but this is kinda really nested.
the xml structure goes like this (this is easy and more or, less standard)(Caption is neglectable, probabaly i will not even display it, unless i have some extra time):
<MenuItem>
<picnum>01</picnum>
<thumb>thumbs/Image00001.jpg</thumb>
<picture>Image00001.jpg</picture>
<Caption>Fist Title</Caption>
</MenuItem>
uaaha, then the as goes. there is the URLloader, but also two different loaders inside (one for the thumbnails, one for the big picture). and this is all inside a for each loop -eh... i was always trying to change the pictLdr behavior - the loader, that loads the big picture.
anyway the URL loader, and the main function, which is attached to it go like this:
var myXML:XML = new XML();
var XML_URL:String = "gallery_config.xml";
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader(myXMLURL);
myLoader.addEventListener("complete", xmlLoaded);
// Create the xmlLoaded function
function xmlLoaded(event:Event):void
// Place the xml data into the myXML object
myXML = XML(myLoader.data);
// Initialize and give var name to the new external XMLDocument
var xmlDoc:XMLDocument = new XMLDocument();
// Ignore spacing around nodes
xmlDoc.ignoreWhite = true;
// Define a new name for the loaded XML that is the data in myLoader
var menuXML:XML = XML(myLoader.data);
// Parse the XML data into a readable format
xmlDoc.parseXML(menuXML.toXMLString());
// Access the value of the "galleryFolder" node in our external XML file
for each (var galleryFolder:XML in myXML..galleryFolder)
// Access the value of the "pagenum" node in our external XML file
var galleryDir:String = galleryFolder.toString();
//trace (galleryDir);
//trace (galleryFolder);//output taki sam jak powyżej
// inicjuję variable flag, która bedzie trzsymac nazwę klikniętego thumbnail
var flag2:String = null;
// Set the index number of our loop, increments automatically
var i:Number = 0;
// Run the "for each" loop to iterate through all of the menu items listed in the external XML file
for each (var MenuItem:XML in myXML..MenuItem)
// Access the value of the "picnum" node in our external XML file
var picnum:String = MenuItem.picnum.toString();
// Access the value of the "pagetext" node in our external XML file
var Caption:String = MenuItem.Caption.toString();
// Access the value of the "thumb" node in our external XML file
var thumb:String = MenuItem.thumb.toString();
// Access the value of the "pagepicture" node in our external XML file
var picture:String = MenuItem.picture.toString();
// Just some trace I used for testing, tracing helps debug and fix errors
//trace(picnum);
var thumbLdr:Loader = new Loader();
var thumbURLReq:URLRequest = new URLRequest(galleryDir + thumb);
thumbLdr.load(thumbURLReq);
// Create MovieClip holder for each thumb
var thumb_mc = new MovieClip();
thumb_mc.addChild(thumbLdr);
addChildAt(thumb_mc, 1);
// Create the rectangle used for the clickable button we will place over each thumb
var rect:Shape = new Shape;
rect.graphics.beginFill(0xFFFFFF);
rect.graphics.lineStyle(1, 0x999999);
rect.graphics.drawRect(0, 0, 80, 80);
// Create MovieClip holder for each button, and put that rectangle in it,
// make button mode true and set it to invisible
var clip_mc = new MovieClip();
clip_mc.addChild(rect);
addChild(clip_mc);
clip_mc.buttonMode = true;
clip_mc.alpha = .0;
// The following four conditionals create the images where the images will live on stage
// by adjusting math through each row we make sure they are laid out good and not stacked
// all on top of one another, or spread out in one long row, we need 4 rows, so the math follows
if (picnum < "05")
line1xpos = line1xpos + distance; // These lines place row 1 on stage
clip_mc.x = line1xpos;
clip_mc.y = yPlacement;
thumb_mc.x = line1xpos;
thumb_mc.y = yPlacement;
else if (picnum > "04" && picnum < "11")
line2xpos = line2xpos + distance; // These lines place row 2 on stage
clip_mc.x = line2xpos;
clip_mc.y = 86;
thumb_mc.x = line2xpos;
thumb_mc.y = 86;
else if (picnum > "10" && picnum < "14")
line3xpos = line3xpos + distance; // These lines place row 3 on stage
clip_mc.x = line3xpos;
clip_mc.y = 172;
thumb_mc.x = line3xpos;
thumb_mc.y = 172;
else if (picnum > "13" && picnum < "21")
line4xpos = line4xpos + distance; // These lines place row 4 on stage
clip_mc.x = line4xpos;
clip_mc.y = 258;
thumb_mc.x = line4xpos;
thumb_mc.y = 258;
// And now we create the pic loader for the larger images, and load it into "pictLdr"
var pictLdr:Loader = new Loader();
var pictURL:String = picture;
var pictURLReq:URLRequest = new URLRequest(galleryDir + picture);
//var pictURLReq:URLRequest = new URLRequest("gallery/Image00004.jpg");sprawia,ze zawsze wyswitla sie jeden obrazek
pictLdr.load(pictURLReq);
// Access the pic value and ready it for setting up the Click listener, and function
clip_mc.clickToPic = pictLdr;
// Access the text value and ready it for setting up the Click listener, and function
clip_mc.clickToText = Caption;
//var instName:String = flag();
// Add the mouse event listener to the moviClip button for clicking
clip_mc.addEventListener (MouseEvent.CLICK, clipClick);
// Set the function for what happens when that button gets clicked
function clipClick(e:Event):void
// Populate the parent clip named frameSlide with all of the necessary data
MovieClip(parent).frameSlide.gotoAndPlay("show"); // Makes it appear(slide down)
MovieClip(parent).frameSlide.caption_txt.text = e.target.clickToText; // Adds the caption
MovieClip(parent).frameSlide.frame_mc.addChild(e.target.clickToPic); // Adds the big pic
} // This closes the "for each" loop
} // And this closes the xmlLoaded function
and the effect looks like this (it's a sketch, so big pictures are loaded randomly, don;t put too much attention to it): http://bangbangdesign.pl/xmlGallery/gallery29.swf
but i guess it's a terrible stuff to go through all this. i would be totallly satisfied with a likng to a good tutorial to do it from scratch, or just a hint where to start rebuilding this.
+ in any case i send greetinngs to whereever you are =] -
Xml gallery alignment, help
I am making an XML gallery with thumbnails. It is working fine, but I have a problem with alignment of the images. All the large images are loading into the top left corner. I would like them to load with center alignment for all images. I don't know anything about Action Script. The way I made this website was to use already made sample of some one else. Can you help me to figure out this alignment problem? Again, I am very bad at Action Script, so it would be great if you can show me the actual coding for this to work.
Here is the sample gallery: http://www.chimeddorj.com
Here goes the Sript>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
RemoveAllThumbs.onLoad = function(){
removeAllThumbs()
//init global variables and properties
Stage.scaleMode = "noscale";
import gs.TweenFilterLite;
import gs.TweenLite;
XML LOADING
//handle loading of external images..
var slide:XML = new XML();
slide.ignoreWhite = true;
var largeImageUrl:Array = new Array();
var thumbUrl:Array = new Array();
var captions:Array = new Array();//not used
var p:Number = 0;//tracks position in arrays
/*!!!!if you want to load in another XML file, make sure you clear the existing thumbnails
by calling the removeAllThumbs() function first!*/
slide.onLoad = function() {
largeImageUrl = [];
thumbUrl = [];
captions = [];
xmlNode = this.firstChild;
var images:Array = this.firstChild.childNodes;
for (i=0; i<images.length; i++) {
thumbUrl[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
largeImageUrl[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
captions[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
p = 0;//reset p for different gallery loading
//create a bg clip for the thumbsTrack. Enables padding between images to work correctly
thumbMask_mc.thumbBox_mc.createEmptyMovieClip("thumbTrackBg",1);
thumbMask_mc.thumbBox_mc.thumbTrackBg.beginFill(0x000000,20);
thumbMask_mc.thumbBox_mc.thumbTrackBg.moveTo(thumbMask_mc.thumbBox_mc._x,thumbMask_mc.thum bBox_mc._y);
thumbMask_mc.thumbBox_mc.thumbTrackBg.lineTo(thumbMask_mc.thumbBox_mc._x+thumbMask_mc.thum bBox_mc._width,thumbMask_mc.thumbBox_mc._y);
thumbMask_mc.thumbBox_mc.thumbTrackBg.lineTo(thumbMask_mc.thumbBox_mc._x+thumbMask_mc.thum bBox_mc._width,thumbMask_mc.thumbBox_mc._y+thumbMask_mc.thumbBox_mc._height);
thumbMask_mc.thumbBox_mc.thumbTrackBg.lineTo(thumbMask_mc.thumbBox_mc._x,thumbMask_mc.thum bBox_mc._y+thumbMask_mc.thumbBox_mc._height);
thumbMask_mc.thumbBox_mc.thumbTrackBg.lineTo(thumbMask_mc.thumbBox_mc._x,thumbMask_mc.thum bBox_mc._y);
thumbMask_mc.thumbBox_mc.thumbTrackBg.endFill();
//load the thumbs
loadThumbs();
Mouse.removeListener(mouseListener);//kill the mouselistener if it is added
slide.load("paintings.xml");//load xml
var imageWidth:Number = 0;//default x position of our movieclips relative to containing movieclip
var buffer:Number = 20;//padding between images
var thumbsToShow:Number = 5//
LOAD THUMBNAILS, ADD ACTIONS & PADDING TO THUMBS
//here we load in our thumbnails
function loadThumbs() {
//remove the movieclip loade listener on each iteration of this function
Clip.removeListener(mclListener);
//attach and associate with a variable a MC to hold each loaded movieClip
var container:MovieClip = thumbMask_mc.thumbBox_mc.attachMovie("thumbBox", "thumbBox"+p, thumbMask_mc.thumbBox_mc.getNextHighestDepth(), {_x:imageWidth, _y:0});
//create a movieclip loader
var Clip:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadStart = function(target_mc:MovieClip) {
target_mc._alpha = 0;//set thumb alpha to be zero
//handle loading progress - simple counter here
mclListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
//use this if you want to indicate loading of your thumbnails etc...
//loadTxt.captions_txt.text = Math.floor(bytesLoaded/bytesTotal*100)+"%";
mclListener.onLoadInit = function(target_mc:MovieClip) {
//here we can access our loaded clips properties!
//here is where we attach functions to our clip so that we can dynamically create rollovers etc.
//make our thumbnails visible again
TweenLite.to(target_mc, 2, {_alpha:100});
//based off image width this places our thumbs next to each other
imageWidth = (imageWidth+target_mc._width)+buffer;
//associate a variable here with our p value, we use this later to load in large images
target_mc.pictureValue = p;
//handle image rollovers these are active only on the thumb image!!! Watch the US spelling!
target_mc.onRollOver = function() {
TweenFilterLite.to(target_mc,.4,{type:"Color", brightness:1.5, ease:None.easeOut});
target_mc.onRollOut = function() {
TweenFilterLite.to(target_mc,4,{type:"Color", brightness:1, ease:None.easeOut});
//handle a click on a thumbnail
target_mc.onRelease = function() {
//load large images
mcLoader.loadClip(largeImageUrl[target_mc.pictureValue],largeImage_mc);
caption.text = captions[target_mc.pictureValue];;
p++;//increment value to cycle through array
if (p<thumbUrl.length) {
loadThumbs();//create loop
if (p == thumbUrl.length) {
/*we set this variable here because this is where we know the length of our thumbnails containing mc.
After we have loaded all content in. Makes sense really!*/
mcWidth = thumbMask_mc.thumbBox_mc._width;
//adjust the width and height of the thumbstrack bg clip
thumbMask_mc.thumbBox_mc.thumbTrackBg._width = mcWidth;
thumbMask_mc.thumbBox_mc.thumbTrackBg._height = thumbMask_mc.thumbBox_mc._height
/*add the mouse listener object to the thumbnail mask. We do this element of our script here so
we do not enable scrolling of our mc before the images have all loaded in. As this can look a little funny*/
Mouse.addListener(mouseListener);
//load in the next thumb
Clip.addListener(mclListener);
Clip.loadClip(thumbUrl[p],container);
REMOVE ALL THUMBS METHOD
//Use to clear old thumbs if you are going to add in a new set of thumbs
function removeAllThumbs():Void {
for (var i in thumbMask_mc.thumbBox_mc) {
if (typeof (thumbMask_mc.thumbBox_mc[i]) == "movieclip") {
removeMovieClip(thumbMask_mc.thumbBox_mc.getInstanceAtDepth(thumbMask_mc.thumbBox_mc[i].ge tDepth()));
thumbMask_mc.thumbBox_mc._width = thumbMask_mc._width
/*sampleRemoveAllButton.onRelease = function(){
removeAllThumbs()
LOAD LARGE IMAGES MOVIECLIP LOADER FUNCTION
/*generic load object here we handle loading in external images etc
this block of code loads the large images into the bright blue mc
for instance, you could fade in/out big images or make a progress indicator
using this block of script*/
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadStart = function(target_mc:MovieClip) {
//empty
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
//amountLoaded = Math.floor((bytesLoaded/bytesTotal)*100);//calulate a loading percentage!
listener.onLoadInit = function(target:MovieClip):Void {
//empty
mcLoader.addListener(listener);
MOUSE LISTENER
//this handles the panning of the thumbnails
mouseListener = new Object();
mouseListener.onMouseMove = function() {
if (thumbMask_mc.hitTest(_root._xmouse, _root._ymouse, true)) {
maskOver();//call the scroll function
SCROLLER FUNCTION
var scrollSpeed:Number = 5;
var halfMaskWidth:Number = thumbMask_mc._width/2;
var npixels:Number;
var mcWidth:Number = thumbMask_mc.thumbBox_mc._width;
var maskWidth:Number = Math.floor(thumbMask_mc._width);
function slideThumbs() {
// stop scrolling if we are off the mask and delete the enterframe event
if (!thumbMask_mc.thumbBox_mc.hitTest(_root._xmouse, _root._ymouse, true)) {
delete this.onEnterFrame;
// mouse over left half of slider:
if (thumbMask_mc._xmouse>0 && thumbMask_mc._xmouse<thumbMask_mc._x+halfMaskWidth) {
npixels = (halfMaskWidth-thumbMask_mc._xmouse)/halfMaskWidth*scrollSpeed;
thumbMask_mc.thumbBox_mc._x += npixels;
//stop sliding too far to the left
if (thumbMask_mc.thumbBox_mc._x>=0) {
thumbMask_mc.thumbBox_mc._x = 0;
delete this.onEnterFrame;
// mouse over right half of slider:
if (thumbMask_mc._xmouse>halfMaskWidth && thumbMask_mc._xmouse<thumbMask_mc._x+thumbMask_mc._width) {
npixels = (thumbMask_mc._xmouse-halfMaskWidth)/halfMaskWidth*scrollSpeed;
thumbMask_mc.thumbBox_mc._x -= npixels;
//stop sliding too far to the right
if (thumbMask_mc.thumbBox_mc._x<=-(mcWidth-maskWidth)) {
thumbMask_mc.thumbBox_mc._x = -(mcWidth-maskWidth);
delete this.onEnterFrame;
//function to do the scrolling man!
function maskOver() {
this.onEnterFrame = function() {
slideThumbs();I am using Flash CS 4, like I mentioned earlier, I am making this site on some one's pre-made flash file. There is a movie symbol for loading the large images (called largeImage_mc). I resized this movie clip to 550x450 px (landscape). And positioned it at X=200 Y=0 (top left corner registration point or the anchor point).
The movie clip could be dragged to any position. But images that are loaded into this bo is always aligning to the top left corner of this movie symbol.
If I calculate the actual center of this image loading area (regarding its position on the window), it would be x=425, y=225.
I hope my writing makes sence.
actual site: www.chimeddorj.com -
I have an XML gallery that has been giving me some problems. My as3 refers to an .as file that is in itself a class. This class creates the gallery and has an event listener to exit the gallery when clicked. It works perfectly fine for exiting the main image, but my thumbnails don't budge. I fixed the thumbnail issue by adding the code removeChild, which removes the gallery completely, but freezes the main image. What I think is happening is that when I add the code removeChild it disables any communication between my swf and as files, which in turn skips over the eventListener to remove my main image.. the code is kind of long and complicated, but i was hoping for some advice.. tips.. anything.
thanks for the help!!
I'm still getting an error 2007 non null object, even though i declared it in same style in which i declared photo_bit.
take the following code for example...
stage.removeChild(stage.getChildByName("photo_bit"));
stage.removeChild(stage.getChildByName("thumb_btn"));
stage.removeChild(stage.getChildByName("thumb_bit"));
and yes I added it to my .as file
private function displaythumb(e:Event):void
thumb_btn = new Sprite();
thumb_bit= new Bitmap();
thumb_btn.name="thumb_btn";
thumb_bit.name="thumb_bit";
thumb_btn.y=(stage.stageHeight-thumb_btn.height)/1.25;
thumb_btn.graphics.beginFill(0x000000,0);
thumb_btn.graphics.drawRect(0,0,125,125);
thumb_btn.graphics.endFill();
thumb_bit=e.target.content as Bitmap;
thumb_bit.y=(stage.stageHeight-thumb_bit.height)/1.045;
thumb_btn.width=thumb_btn.height=thumb_bit.width=thumb_bit.height=125;
thumb_bit.smoothing=true;
addChild(thumb_bit);
addChild(thumb_btn);
thumb_btn.addEventListener(MouseEvent.CLICK,loadphoto); -
Xml gallery problem??
I´m using a xml gallery with thumbs . I tried several
things but can´t get it work. I want to add links in the
textfield. The text in the textfield comes from a .txt file and xml
file. I dont know if it´s possible to add links in .txt files
or if there is any other way to open urls with links for the
different images.
I hope someone can help me with this..
file included...
http://www.robertr.se/flash/portfoliopage.zip
207 kb
Very best regards
/RobertI'm not really sure what you are trying to do. I dont know
what you are trying to make a link out of....
However if you have a movieclip called myPic, and you want it
to link to one of your urls loaded from the xml or a .txt file
myLink= whatever your loaded link from xml or .txt is;
myPic.onRelease=function(){
getURL(myLink,blank);} -
I've got an xml gallery that i've built in flash...
everything works just fine- but i'm now trying to build an
alternate gallery and I'm in a bit over my head.
Here are the nodes I have in my xml:
<pic>
<image></image>
<caption></caption>
<thumbnail></thumbnail>
<projname></projname>
<subtitle></subtitle>
<view></view>
</pic>
from there: the thumnails layout- the image, and copy display
on rollOver of the thumbs...
for my alternate gallery- I want the same layout- however for
example a 'web' category, i only want the 'web' thumbnails to work-
and still have the rest of the gallery load an alternate thumbnail-
that is a grayscale version of the original- and i want it to do
absolutely nothing but sit there. I have created alternate gray
versions of the images and they load fine...
obviously leaving out the nodes i don't want stops the xml
from loading... and leaving them blank returns an 'undefined' in my
dynamic text boxes.
i haven't had to tackle something like this in the past and
i'm not sure where to start-
would it work to have a category node and then an if/else
statement leaving specified categories rollOver states .enabled =
false; ?
if anyone has any ideas - i'm just not sure where to go from
here.
thanks!any type of filtering through XML CAN be done through flash,
or parsed in the asp/php file that is generated, but modifying the
SQL statement that creates your initial data is the real way to
handle your issue.
If you do end up parsing all the XML in flash alone, you'll
do a lot more work, but you'll probably have to split up your XML
into seperate objects via catagory. (or write if statements to
ignore empty nodes). -
hi! i was woundering if anyone can help me with an xml
gallery. i have one created and it displays the pictures fine, but
i would like one which i would not have to edit the xml file to add
new images into, so the gallery updates itself everytime a new
image is placed into the folder.
is this possible or am i stuck with having to edit the xml
file myself everytime?Possible but to update the xml you will need additional -
server side - software like ASP, PHP, CF, Java. -
XML Gallery: Change from MouseEvent to automatic?
I am trying to edit an old XML gallery that I made so that it will scroll through the images automatically, without any user interaction at all. Currently it's set to scroll through them one at a time and is controlled by mouse clicks. I can't figure out how to change it. Any help would be greatly appreciated!!
Here's my code:
var xmlRequest:URLRequest = new URLRequest("homeImages.xml");
var xmlLoader:URLLoader = new URLLoader(xmlRequest);
var imgData:XML;
var imageLoader:Loader;
var rawImage:String;
var rawH:String;
var rawW:String;
var imgNum:Number = 0;
var checkSec:Timer = new Timer(100);
var numberOfChildren:Number;
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
Images_mc.addEventListener(MouseEvent.CLICK, nextImgF);
Images_mc.buttonMode = true;
function xmlLoaded(event:Event):void
checkSec.start();
checkSec.addEventListener(TimerEvent.TIMER, checkerF);
imgData = new XML(event.target.data);
function packagedF():void
checkSec.removeEventListener(TimerEvent.TIMER, checkerF);
rawImage = imgData.image[imgNum].imgURL;
numberOfChildren = imgData.*.length();
rawW = imgData.image[imgNum].imgW;
rawH = imgData.image[imgNum].imgH;
imageLoader = new Loader;
imageLoader.load(new URLRequest(rawImage));
Images_mc.addChild(imageLoader);
imageLoader.x = (Images_mc.width - Number(rawW)) /2;
imageLoader.y = (Images_mc.height - Number(rawH)) /2;
function checkerF(event:TimerEvent):void
if(imgNum == 0)
packagedF();
else if(imgNum < numberOfChildren)
imageLoader.unload();
packagedF();
else
imageLoader.unload();
imgNum = 0;
packagedF();
function nextImgF(event:MouseEvent):void
checkSec.addEventListener(TimerEvent.TIMER, checkerF);
imgNum++;You should be able to incorporate a second Timer object that you use for the automatic advancing....
var autoTimer:Timer = new Timer(2000); // adjust for desired msec
autoTimer.addEventListener(TimerEvent.TIMER, nextImgF);
Since you are loading images with each call to that function, you may end up needing to incorporate more control of the timer and not have it firing repeatedly on its own, which means adding a listener for loading completion, putting a limit on the number of repeats to once, and assign a new Timer each time thru... var autoTimer:Timer; .... autoTimer = new Timer(2000, 1);.... -
I have no less than 8 hours in google search and currently 5 adobe forum tabs open to determine how to solve the "XML Gallery not found" error. Many of us use Lightroom to create a flash web gallery. We save it. We import it into dreamweaver into an existing page that has 5 table elements - by doing the insert / media / swf and point to the swf file of the flash web gallery we just created....and see a nice gray insert with a flash symbol.. we upload it from dreamweaver to the site. At the site the page loads - the tables in the page loads - and the table element that contains the flash gallary - has a note that says "XML gallery not found". Curiously - if I insert a hyperlink in a table on the page and make the link to the index.swf file - when I click the hyperlink a new page with that flash gallery loads and plays. The hyperlink gets there - the embed media in a table does not... Can anyone reference a solution that works? thanks in advance... I see many people asking this type of question and have not found a searchable answer. PS - I am stating this catagorically so the answer gods will work harder to quickly prove me wrong!~ please make me look really dumb and show me a link to the answer :L best - Keith
Hi
The answer is quite simple, the linking to the xml file is wrong for your dreamweaver page, (the swf file if opened separately will find the xml file).
Create yout dreamweaver html page in exactly the same file position as your swf file, if this is not possible then you will have to do this the reverse way, create the swf/xml file in the same position as your html page.
PZ -
XML Gallery won't work remotely - Action Script issues
I created an XML scrolling thumbnail gallery using a
tutorial
found here
I then had to alter the action script to get my thumbnails to
display properly -- they were spaced out or overlapping each other
and not in the sequence specified in the XML file. The new code
works great locally, but the thumbnails and larger image refuse to
load remotely in every browser i've tried. Any thoughts on how to
alter the action script to load the gallery?!?! I'm not much
experienced in Flash so any help would be most appreciated.
You can find the page with my unloadable gallery
here
You can see my action script in my
Flash
CS3 file
Thanks!
Joe.Hi --
I clicked on the link for your gallery and the images load??
Both when I
click on the image or when I click the "next" and "previous"
buttons --
although the "hit" area for the buttons is below the actual
text so you
should adjust that on those buttons. I would also recommend
not making the
text selectable so the cursor won't change to the "I bar"
Rich
"joesavy" <[email protected]> wrote in
message
news:fcp3qi$4ak$[email protected]..
>I created an XML scrolling thumbnail gallery using a
>
http://www.kirupa.com/developer/mx2004/thumbnails.htm
>
> I then had to alter the action script to get my
thumbnails to display
> properly
> -- they were spaced out or overlapping each other and
not in the sequence
> specified in the XML file. The new code works great
locally, but the
> thumbnails
> and larger image refuse to load remotely in every
browser i've tried. Any
> thoughts on how to alter the action script to load the
gallery?!?! I'm not
> much
> experienced in Flash so any help would be most
appreciated.
>
> You can find the page with my unloadable gallery
>
http://www.sullivancreative.com/clients/se-07-7-24/se_website/gallery.html
>
> You can see my action script in my
>
http://www.sullivancreative.com/clients/se-07-7-24/se_website/xml_photogallery_s
> crollthms_fix.fla
>
> Thanks!
> Joe.
>
> -
Need help with this xml gallery !!!
i have build a gallery but its very simple...... it takes images from xml file.
i have attached all files in zip.
i just want two things if anyone can help.
first when i press next button it goes to next image but with no effect. it just displays next image ... i want to incorporate a sliding effect when the image is changed to another.
and second i want to use autoplay feature.
as soon as swf starts the images came one by one with difference of few seconds.
thx in advance... i really need help in this....!You're welcome.
I don't have an example to offer for the autorun. You should be able to think it thru. One key, as I mentioned is to preload all of the images first, that will allow for smooth playing of the show--no waiting for images to load between changes. You can load them into empty movieclips and hide them (_viisible = false) until they are needed. You could load them when called for, but you would have to put conditions on the displaying of things until the image loads, which will change when they are all loaded, so I recommend just loading them all first.
For the timing you can use setInterval. If something is going to be allowed to interupt the autorun, then you will need to make use of the clearInterval function as well, so that you stop the clock.
Since you will be wanting to know when things are loaded, you will need to use the MovieClipLoader.loadClip method for loading the images instead of using loadMovie. This is because the MovieClipLoader class supports having an event listener. If you look in the help documents in the MovieClipLoader.addListener section, there is an example there that provides a fairly good complete overview of using the code. The only difference is you'd be looking for the onLoadComplete event rather than the onLoadInit event. -
Making a very bespoke xml gallery
Hello people :-)
Having come up with a new design for my friend's jewellery
website that I'm building in xhtml and CSS, I've decided to go for
flash for the gallery in order to keep it fully updatable.
Mock
up design here
There are eventually going to be many categories and new
items of jewellery added on a fairly regular basis, hence the need
for scrolling on both the categories and the thumbnails sections.
Each section, sub section etc would need to be infinitely updatable
(within reason!)
Now I've built really simple xml galleries before, nothing on
this scale. Perhaps someone could point me in the direction of a
tutorial for a gallery similar to this one? It would have to be
almost identical for me to be able to be able to adapt it to my
design as I just don't have the in depth knowledge of this stuff to
make massive additions or changes and i'm really pushed for time.
Was thinking maybe there's some kind of template around I could
adapt - I've done countless searches on this type of thing but
can't find anything similar enough! Or maybe even someone here
could have a go at it for a fee?!!
Hopefully it's clear enough from the jpg what needs to happen
and where...
Any suggestions very much appreciated!
PatHello people :-)
Having come up with a new design for my friend's jewellery
website that I'm building in xhtml and CSS, I've decided to go for
flash for the gallery in order to keep it fully updatable.
Mock
up design here
There are eventually going to be many categories and new
items of jewellery added on a fairly regular basis, hence the need
for scrolling on both the categories and the thumbnails sections.
Each section, sub section etc would need to be infinitely updatable
(within reason!)
Now I've built really simple xml galleries before, nothing on
this scale. Perhaps someone could point me in the direction of a
tutorial for a gallery similar to this one? It would have to be
almost identical for me to be able to be able to adapt it to my
design as I just don't have the in depth knowledge of this stuff to
make massive additions or changes and i'm really pushed for time.
Was thinking maybe there's some kind of template around I could
adapt - I've done countless searches on this type of thing but
can't find anything similar enough! Or maybe even someone here
could have a go at it for a fee?!!
Hopefully it's clear enough from the jpg what needs to happen
and where...
Any suggestions very much appreciated!
Pat -
I have created a picture gallery which is controlled by
thumbnails. Now I wanted to add a function to open the picture
showing, in seperate window, when it is clicked on. But I can't
figure this xml out, someone please help me.*BUMP* Anyone!?
Maybe you are looking for
-
Can you control which devices are on network
Is there an application to control and monitor the Airport Extreme Base Station Network? I'd like to be able to shut down access to, for example, my kids' devices at night without shutting down the whole network.
-
How to Turnoff Drag-n-Drop with BI 7.0
Hi Experts I am strugling to provide user to access BW reports through Portal. BW Version : 7.0 Step 1: Created a Query in Query Designer. Step 2: In WAD Using a Standard Templet Linked Query. (Please advise any standard templete to use in WAD) Ste
-
VM Server got a new IP and hostname. How to update VM Manager?
Test environment: VM Server 2.2.1 / VM Manager 2.2.0 The VM Server has a number of virtual machines running in it. It is all on 1 physical machine with local disks. Our VM Server now got a new IP-address and hostname after physical move. How to get V
-
I am new to Photoshop Elements and have encountered a problem - I have been asked to restart my computer but the problem still remains. I am told to contact support and give the following Error number - 150.30 Who can help me? Message title was edi
-
I want to be able to open a pdf, and I've searched around. It seems like I have the correct scripting, but nothing happens at all when I click my button? on mouseUp me open File(the moviePath & "PDFs\Blood Pathogens.pdf") end Any suggestions? Thanks!