Google
 
Webnews.only-4-geeks.com
Interesting places
news.only-4-geeks.com Forum Index » Flash - ActionScript

forcesmoothing

 
Jump to:  
 
extravaganza_
PostPosted: Thu Jun 05, 2008 8:41 pm    Post subject: forcesmoothing
       
I am trying to use forcesmoothing and having partial success. I have found a
script that I am using to dynamically load pictures on a site I am doing - here
is the site-www.stacybuckley.com/ click on collections and then the pic on the
left to see the script at work

I am having a problem with images not being smooth. I just found out about
forcesmoothing (there isn't that much info on the net about it.) I am able to
use it to smooth the thumbnails (thumbs_mc) but not the main picture.

I have included forcesmoothing = true in the function "init" towards the
bottom of the code to set the force smoothing for pic_mc to true but this
doesn't seem to help. Any help is appreciated.

var picnames:Array = [
"K-Ceramic-squares", "K-Wood-Squares-black", "K-Wood-Squares-natural",
"K-bone-black", "K-bone-green", "K-bone-light-blue", "K-bone-light-red",
"K-bone-oval-white", "K-bone-ovals-blue", "K-bone-white", "K-coral-square",
"K-glass-blue", "K-glass-gray", "K-glass-green", "K-glass-pink",
"K-glass-rectrangle-blue", "K-shell-circle-blue", "K-shell-circle-white",
"K-wood-balls-natural", "K-wood-circles-burgandy", "K-wood-rectangle-natural",
"K-wood-square-natural-two-tone", "K-wood-zebra-square"
];


/*
dynamic array loading (below) still not working yet so had to manually add
above - array seems to need quotation marks which are not produced by code below

var myLoadVars:LoadVars = new LoadVars();

myLoadVars.onLoad = function (success:Boolean) {
var decoded = unescape(this);
if (success) {
var spStr = decoded.split(",");
for(var i=0; i<spStr.length; i++) {
picnames.push(spStr[i]);
}
picnames.pop();
}
trace(picnames[0]);
trace(picnames);
};
myLoadVars.load('http://www.stacybuckley.com/vars/pics.php');
*/



// constants
var PICPATH:String = "pages/images/kristi/"; // folder with jpgs
var NPICS:Number = picnames.length; // number of pictures to load
var PICX:Number = 420; // x loc of big picture
var PICY:Number = 130; // y loc
var THUMBHOLDERX:Number = 0; // x location of thumbnail holder movieclip
var THUMBHOLDERY:Number = 500; // y location
var THUMBW:Number = 200; // width of each thumbnail
var THUMBH:Number = 133; // height
var MARGIN:Number = 30; // margin between thumbnails
var TOTALBYTES:Number = 212000; // approx sum of bytes in all jpgs (x 2)
var MAXPIXELS:Number = 12; // max number of pixels to move slider per
frame

onEnterFrame = function() { thumbs_mc._x = (thumbs_mc._x+1);}

// mask definition; mask is assumed to cover some part of the thumbnail slider
(here the numbers
// were chosen so that there are margins between the mask and the right and
left edges of the movie
// (which is 420 x 290), and enough space above and below the thumbs to show
them when they 'grow'
// on mouseover
var MASKX:Number = 0; // start x location of mask
var MASKW:Number = 850; // mask width
var MASKY:Number = 500; // start y location of mask
var MASKH:Number = 133; // mask height

var totalloaded:Number = 0; // running tally of bytes loaded from all
pics

// index into pictures array, used for loading
var ipic:Number;

// set up loader, an instance of MovieClipLoader
var loader:MovieClipLoader = new MovieClipLoader();


// use the main timeline to listen to and respond to loader's broadcast events
loader.addListener(this);
loader.addListener({
onLoadInit: function(target:MovieClip){
// this prevents that awfully jagged look
target.forceSmoothing = true;
}
});

/********* DEFINE FUNCTIONS, INCLUDING INIT FOR MOVIE SETUP **********/
// thumbnail rollover handler

function grow() {
this.onEnterFrame = function() {
if (this._width < THUMBW * 1.2) {
this._x -= this._width * .025;
this._y -= this._height * .025;
this._width *= 1.05;
this._height *= 1.05;
} else delete this.onEnterFrame;
};
}

// thumbnail rollout handler

function shrink() {
this.onEnterFrame = function() {
if (this._width > THUMBW) {
this._width /= 1.05;
this._height /= 1.05;
this._x += this._width * .025;
this._y += this._height * .025;
} else delete this.onEnterFrame;
};
}

// function to move thumbnail slider ("this" = thumbs_mc)

function sliderControl() {
var w:Number = this._width/2;
var hw:Number = mask_mc._width/2;
var npixels:Number;
// only do when mouse over slider mask
if (_ymouse > mask_mc._y && _ymouse < mask_mc._y + mask_mc._height) {
// mouse over left half of slider:
if (_xmouse > mask_mc._x && _xmouse < mask_mc._x + hw) {
npixels = (hw - _xmouse) / hw * MAXPIXELS;
this._x += npixels;
if (this._x >= 0) this._x = this._x - w;
// mouse over right half of slider:
} else if (_xmouse > mask_mc._x + hw && _xmouse < mask_mc._x +
mask_mc._width) {
npixels = (_xmouse - hw) / hw * MAXPIXELS;
this._x -= npixels;
if (this._x <= -w) this._x = this._x + w;
}
}
}

// thumbnail click (onrelease) handler

function openPic() {
pic_mc.loadMovie(PICPATH + picnames[this.i] + ".jpg");


}

// assign event handlers (called when all jpgs are loaded)

function setupHandlers() {
pct_txt.removeTextField(); // don't need loading indicator any more
thumbs_mc.onEnterFrame = sliderControl;
for (var i:Number = 0; i < NPICS*2; i++) {
thumbs_mc["mc"+i].onRollOver = grow;
thumbs_mc["mc"+i].onRollOut = shrink;
thumbs_mc["mc"+i].onRelease = openPic;
}
}

// listener function for broadcast 'done' message (for each pic)
// onLoadInit gets executed when the movieclip has been loaded into _mc AND
// its width and height data are available.
// (_mc = the movieclip being loaded into)
// this routine sets the size and position of each thumbnail clip as its jpg
// is loaded and starts the next one loading. When all have been loaded,
// a random picture is loaded into pic_mc and setupHandlers is called to
// assign handlers to each thumbnail movieclip

function onLoadInit(_mc:MovieClip) {
// this gets done when the jpg is completely loaded:
_mc.forceSmoothing = true;
_mc._width = THUMBW;
_mc._height = THUMBH;
_mc._alpha = 99; // for image clarity
// give the movieclip a property to remind it who it is
// (used by openPic to know which big picture to open)
_mc.i = (ipic >= NPICS ? ipic-NPICS : ipic);

// add picture size to totalloaded variable
totalloaded += loader.getProgress(_mc).bytesTotal;

// now load the next one (if there are more) or set up handlers if done
ipic++;
if (ipic == NPICS * 2) {
// start with a random photo displayed when all thumbs loaded
pic_mc.loadMovie(PICPATH + picnames[Math.floor(Math.random()*NPICS)] +
".jpg");

setupHandlers();
} else if (ipic >= NPICS) {
// load jpg into duplicate thumbnail (will already be cached)
loader.loadClip(PICPATH + picnames[ipic-NPICS] + ".jpg",
thumbs_mc["mc"+ipic]);
} else {
// load jpg into thumbnail
loader.loadClip(PICPATH + picnames[ipic] + ".jpg",
thumbs_mc["mc"+ipic]);
}
}

// listener function to handle broadcast progress messages
// make pct_txt show cumulative loading progress

/*function onLoadProgress(_mc:MovieClip, loaded:Number) {
var loadedsofar:Number = totalloaded + loaded;
pct_txt.text = Math.floor(loadedsofar / TOTALBYTES * 100) + "%";
}
*/

function init() {
// create holder for pictures
createEmptyMovieClip("pic_mc", 1);
pic_mc.forcesmoothing=
pic_mc._x = PICX;

pic_mc._y = PICY;

// create (and draw) holder for thumbnails
createEmptyMovieClip("thumbs_mc", 2);
thumbs_mc.beginFill(FFFFFF, 100); // black
thumbs_mc.moveTo(000, 0);
thumbs_mc.lineTo(2 * (MARGIN + THUMBW) * NPICS, 0);
thumbs_mc.lineTo(2 * (MARGIN + THUMBW) * NPICS, THUMBH);
thumbs_mc.lineTo(0, THUMBH);
thumbs_mc.endFill();
// drawing the thumb holder at 0, 0 and then moving it makes its reg point
= upper left
thumbs_mc._x = THUMBHOLDERX;
thumbs_mc._y = THUMBHOLDERY;

// create, draw and enable mask over thumbs (could use different variables
to define mask
// if desired)
createEmptyMovieClip("mask_mc", 3);
mask_mc.beginFill(0x0000cc, 0);
mask_mc.moveTo(0, 0);
mask_mc.lineTo(MASKW, 0);
mask_mc.lineTo(MASKW, MASKH);
mask_mc.lineTo(0, MASKH);
mask_mc.endFill();
mask_mc._x = MASKX;
mask_mc._y = MASKY;
thumbs_mc.setMask(mask_mc);

// create loading textfield indicator
createTextField("pct_txt", 4, 200, 100, 40, 100);
var tf:TextFormat = new TextFormat();
tf.align = "center";
tf.size = 12;
tf.font = "Verdana";
tf.color = 0xFFFF00;
pct_txt.setNewTextFormat(tf);

// make empty movieclips in thumbs_mc for each pic to go into
// make double the number so the slider can move continuously and show
content
for (var i:Number = 0; i < NPICS * 2; i++) {
var mc:MovieClip = thumbs_mc.createEmptyMovieClip("mc"+i, i+1);
mc._x = i*(MARGIN + THUMBW);
mc._y = 0;
}

// set the pointer to the first jpg in the array picnames
ipic = 0;
// start loading jpgs (ipic is initialized to 0)
loader.loadClip(PICPATH + picnames[ipic] + ".jpg", thumbs_mc["mc"+ipic]);
}

/********* CALL THE INIT FUNCTION TO START THE MOVIE *****************/
init();
 

 
extravaganza_
PostPosted: Thu Jun 05, 2008 8:45 pm    Post subject: Re: forcesmoothing
       
I forgot to take this out before posting code before - this wasn't helping
either

// use the main timeline to listen to and respond to loader's broadcast events
loader.addListener(this);
loader.addListener({
onLoadInit: function(target:MovieClip){
// this prevents that awfully jagged look
target.forceSmoothing = true;
}
});
 

Page 1 of 1 .:.

Google
 
Webnews.only-4-geeks.com

Windows Update | C++ | C | PHP | JavaScript | Photoshop | Programming | Windows 2000 | Python | Windows XP | Object | Flash | Flash - ActionScript | Paint Shop Pro | Excel | PowerPoint | Access | Word | Windows 98 | Internet Explorer 6.0 | CorelDraw12 | Java | XML | asm x86 | Linux Mandrake | Linux RedHat | Outlook |  | news from newsgroups |_ | s

Web Templates

Awesome Website Templates ©

nieruchomości lublin Do Samotności - Mickiewicz Adam free bingo Stwarzanie świata - Miłosz Czesław mieszkania poznań