Animate Image in Cp 3
Using Cp 3
I would like to have images appear to move across the screen. (ex. photo of a combine which would appear as if it is moving towards you or move across the screen to appear as if it is actually moving across the field) I have tried the Zoom Area and it is okay, but it's not really what I was looking for. I do not have Flash. I wondered if anyone could recommend how to achieve this. Or perhaps recommend some software I can download that would allow me to create an animation like what you could do with the animation in PPT. Thank you.
Hi again
Actually the zoom may be changed in many ways. Note that the zoom has two areas. The start and the destination. The difference in size between the start and destination determines the magnification level. You may freely click and drag the sizing handles to change the size. Or you may wish to use the Stage Toolbar to be very precise with sizing.
I doubt you will be able to zoom anything totally off the stage. The best you can probably do is to move it to the edge and fade it out. I suppose you could get creative with the zoom and set it up so it would appear to slide off the edge. Not sure.
This could prove to be problematic. I say that because I know I've seen at least one post that mentioned creating something in Flash that had objects off the stage initially. But the complaint was that when they inserted into Captivate, the objects suddenly became visible.
Cheers... Rick
Click here for Adobe Certified Captivate and RoboHelp HTML Training
Click here for the SorcerStone Blog
Click here for RoboHelp and Captivate eBooks
Similar Messages
-
Animate image behind mask, without mask moving
Hey guys this is probably really easy but this is my first run at doing a video project and cant get this to work for the life of me!
OK, I have 3 images which I imported from PS CC ( AE is CC as well for reference ) a company logo, a spacer line then the company name stylized so I want to use this and not just a text tool...
Now I have the logo and spacer fade in then I want the text to slide in from behind the logo and spacer making it look like its coming out of the vertical bar, I know I need to mask from the bar all the way to the left of the logo and offscreen to pull this off but I cannot get the mask to not slide when I try to animate the text layer! please help me figure this out!I ended up just making another comp of the animation I wanted, brought that into comp1 and positioned it where I wanted it and bam, bobs your uncle! So easy but as I said my first time doing something in AE so I had to stumble through it
-
How to Create a trigger code for turning on light bulbs in flash and animate images professional cs6
hi,
i designed a very interactive music website in illustrator and photoshop and i am trying to animate the main page design in flash professional and eventually publish it as HTML5. There are couple of questions i need to ask before starting
1) should i import my design in differnet layers from illustrator into flash professional in order to make it easier to isolate and animate specific parts of the web page?
2) i want to have a roll over effect that allows certain features in the page to turn on and off when the mouse hovers over them. can you explain how to do that? any tutorial videos i could follow
3) what format should i use when importing my illustrator design into flash professional
4) how should i animate the content pop out from the safe box into the main screen in flash professional (i have never used this program before, so i will be going off video tutorials and whatever suggestions/help you would have)
**The idea is to have a content frame fly out of the safe into the screen (the size will increase rapidly and it will fade into the screen as well while rotating 360 degrees for one revolution). The content is a basic rectangular frame i designed in illustrator. The body of this frame will be transparent allowing me to embed the main page features into it eg music, videos, bio etc. All this will be done in the later process, the main issue is figuring out how to animate the content frame into the screen and also creating a click feature that allows the content to fly back into the safe and then the safe closing in.
Secondly, the trigger code rollover effect that allows certain features light to turn on when the mouse hovers over it and turn over when its not.****I think you'll get most flexibility by turning on the feature that lets you keep your Illustrator layers as Flash layers. You'll also want to check the box that lets you make an Illustrator object into a MovieClip for anything that you want to interact with or address through code.
Add an event listener for MOUSE_OVER that triggers whatever functions you need to create to turn on the features. This means that your object that you will mouse over will need to be a MC, as well as any other objects that will be addressed (for example, calling play()) will need to be a MC. You'll want to have a matching MOUSE_OUT handler that stops MC's, hides them, or whatever.
You should probably organize your Illustrator file so that the objects you need to address are on their own layers. This includes nested objects. Name things informatively. Remember, if the first import doesn't give you exactly what you want, you don't have to save the change--you can edit your settings or the Illustrator file and try again.
Look into motion tweens. I highly recommend the books "How to Cheat at Flash" and "Animation with Scripting." I don't really think the way they tell you to script will advance your career if you want to be a software architect, but if you just want to animate the occasional widget, it's fine. -
How to animate images coming from web service in iphone sdk.
this is my code check once and give me reply.
- (void)parserDidEndDocument:(NSXMLParser *)parser{
moreListTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 10, 320, 350) style:UITableViewStylePlain];
moreListTableView.delegate = self;
moreListTableView.dataSource = self;
[self.view addSubview:moreListTableView];
for(i=0; i < [advImagesList count]; i++){
NSString *data=[[NSString alloc]initWithFormat:[advImagesList objectAtIndex:i]];
Byte inputData[[data lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
[[data dataUsingEncoding:NSUTF8StringEncoding] getBytes:inputData];
size_t inputDataSize=(size_t)[data length];
size_t outputDataSize=EstimateBas64DecodedDataSize(inputDataSize);
Byte outputData[outputDataSize];
Base64DecodeData(inputData, inputDataSize, outputData, &outputDataSize);
NSData *theData=[[NSData alloc]initWithBytes:outputData length:outputDataSize];
imgview=[[UIImageView alloc]initWithImage:[UIImage imageNamed:data]];
imgview.frame=CGRectMake(0, 317, 320, 50);
imgview.image=[UIImage imageWithData:theData];
[self.view addSubview:imgview];
Timer = [NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(moveRect) userInfo:nil repeats:YES];
-(void)moveRect
// imgview.animationImages=advImagesList;
[imgview startAnimating];
[imgview setAnimationDuration:2];This is a user forum. Try developer.apple.com.
-
Hi, i wanted to know how to make a image of a car look like
it is coming right at you. Do you do that with different sizes of
same image from small to larger?? If so, can you explain how to do
it.
Thanks,
DennisHi, i wanted to know how to make a image of a car look like
it is coming right at you. Do you do that with different sizes of
same image from small to larger?? If so, can you explain how to do
it.
Thanks,
Dennis -
How can i animate .jpg image?
hi
how can i animate images which i edit in GIMP?
i mean, i have 1 video clip showing a tree. and then i have 1 .jpg image of an airplane
how can i make that airplane from jpg image to appear in the video showing the tree? i want to make that airplane crash into the tree and explode.
i see a lot of similar stuff on youtube (like "cyriak animation mix") but i don't know what this technique is called. animation of still images? google search gave me lots of dubious results, none of them came straight to the point.
all i know it involves some manipulation of keyframes but i need to know more keywords to further research this technique. or better yet - find a decent article explaining basics.
can somebody help?First, you will probably want to Key out the background around the plane. Look into Chorma Key, or one of the other Keying Effects in PrE, depending on how the plane was shot, or created. If you created it, you can probably Mask out any background, and Save_As a format, that support Transparency, such as with an Alpha Channel Mask.
Then, with the plane on a higher Video Track, than your tree, use the Fixed Effect>Motion>Position to Keyframe the Position of the plane, moving it across the Frame. Steve Grisetti has a great Learning Series on Basic Keyframing and Advanced Keyframing, available at Muvipix.com: http://www.muvipix.com/products.php?searchphrase=Basic+Keyframing&btn.x=-1091&btn.y=-78
Good luck,
Hunt -
http://www.kowalskidesign.com/source/normalFlash.html
Hello,
I'm having problems resizing the expanded view. This is when you click on a thumb and the image enlarges with a description.
I've tried changing lines 204-205 (highlighted in bold in code below)
'// extends mask producing fully visible image' changing:-
width: (2 * MWIDTH), to width: 550 and the same with the height but i get mixed results.
If anyone could give me some pointers it would be very much appreciated.
The link is above. Here is the code:-
// Grid Expandable Gallery
// (C)RimV - www.mymedia-art.com - [email protected]
// FLASH LIB
import flash.geom.*;
import flash.display.BitmapData;
import flash.filters.DropShadowFilter;
// FUSE KIT
import com.mosesSupposes.fuse.*;
import com.mosesSupposes.fusefx.*;
import com.endologik.fusefx.*;
// DYNAMIC REGISTRATION
import com.darronschall.DynamicRegistration;
//______________________________________________ PARAMETERS
// Gallery characteristic
var strokeThickness:Number = 2;
var rows:Number = 4;
var columns:Number = 5;
var bWidth:Number = 700;
var bHeight:Number = 500;
var speed:Number = 0.5;
var layerAlpha:Number = 70;
// Roll over / roll out effec
var Effect:Array = ["None", "brightness", "photo flash", "grayscale"];
var effectID:Number = 2;
// data path
var styleSheet:String = "css/styles.css";
var xmlPath:String = "normalFlash.xml";
//______________________________________________ VARIABLES
// Gallery dimension
var SWIDTH:Number;
var SHEIGHT:Number;
var MWIDTH:Number;
var MHEIGHT:Number;
var nWidth:Number;
var nHeight:Number;
var TOTAL:Number;
// Movieclip dimension
var maskContainer:MovieClip = new MovieClip();
var layer:MovieClip = new MovieClip();
var current:MovieClip = new MovieClip();
var descriptionClip:MovieClip = new MovieClip();
var preloader:Array = new Array();
var maskArray:Array = new Array();
var image:Array = new Array();
var position:Array = new Array();
var captionClip:MovieClip = new MovieClip();
// misc
var xmlData:XML = new XML();
var link:Array = new Array();
var description:Array = new Array();
var caption:Array = new Array();
var count:Number = 0;
var firstLoaded:Boolean = true;
var mWidth:Number;
var mHeight:Number;
var dX, dY:Number;
//______________________________________________ MAIN
initGallery();
function initGallery():Void
// Initialize ZigoEngine
ZigoEngine.register(PennerEasing, FuseItem, FuseFMP);
FuseFX.register(ColorFX);
ZigoEngine.OUTPUT_LEVEL = 0;
// hide display clip
display._visible = false;
// Global reference
_global.base = this;
// Gallery dimension
SWIDTH = Stage.width;
SHEIGHT = Stage.height;
base = this;
// stage resize listener
Stage.scaleMode = "noScale";
Stage.align = "TL";
var stageResize:Object = new Object();
Stage.addListener(stageResize);
stageResize.onResize = onStageResize;
// start building gallery
buildGallery();
dX = -(Stage.width - bWidth) * .5;
dY = -(Stage.height - bHeight) * .5;
function onStageResize():Void
base._x = (Stage.width - bWidth) * .5 + dX;
base._y = (Stage.height - bHeight) * .5 + dY;
function buildGallery():Void
// Load XML
loadXML();
// Load StyleSheet
loadStyleSheet();
// Load XML
function loadXML():Void
xmlData.ignoreWhite = true;
xmlData.onLoad = loadData;
xmlData.load(xmlPath);
// Load image and save data
function loadData(loaded:Boolean):Void
if (loaded)
var data:Array = xmlData.firstChild.firstChild.childNodes;
TOTAL = data.length;
createMaskContainer();
for (var i:Number = 0; i < TOTAL; i++)
var dat:Array = data[i].childNodes;
caption[i] = dat[1].attributes.content;
description[i] = dat[2].firstChild.nodeValue;
link[i] = dat[3].attributes.src;
// Image data
image[i] = new MovieClip();
position[i] = new Object();
loadImage(dat[0].attributes.src, i);
// Load image
function loadImage(src:String, index:Number):Void
image[index] = this.createEmptyMovieClip("image" + index, index + 1000);
// create movie clip loader listener
var mylistener:Object = new Object();
// update progress
mylistener.onLoadProgress = function(image:MovieClip, byteLoaded:Number, byteTotal:Number):Void
var num:Number = Math.round(byteLoaded / byteTotal * 100);
_global.base.preloader[index].percent.text = num;
// Load completed initialize data
mylistener.onLoadInit = function(target:MovieClip):Void
// remove preloader
preloader[index].removeMovieClip();
//set up necessary component and calculate data
// Setting center registration
DynamicRegistration.initialize(target);
target.setRegistration(target._width / 2, target._height / 2);
var r:Number = Math.floor(index / columns);
var c:Number = index % columns;
var deltaX:Number = (SWIDTH - bWidth) / 2;
var detalY:Number = (SHEIGHT - bHeight) / 2;
cover[index]._x = target._x2 = position[index].x = (c + 1) * strokeThickness + c * mWidth + mWidth / 2 + deltaX;
cover[index]._y = target._y2 = position[index].y = (r + 1) * strokeThickness + r * mHeight + mHeight / 2 + detalY;
target.xmin = target._x2 - (target._width - mWidth) / 2;
target.xmax = target._x2 + (target._width - mWidth) / 2;
target.ymin = target._y2 - (target._height - mHeight) / 2;
target.ymax = target._y2 + (target._height - mHeight) / 2;
target.index = index;
target.xk = speed;
target.yk = speed;
target.release = false;
target.oX = target._x2;
target.oY = target._y2;
target.setMask(maskArray[index]);
maskArray[index].tWidth = (target._width) / (bWidth / MWIDTH);
maskArray[index].tHeight = (target._height) / (bHeight / MHEIGHT);
// Apply effect
switch (Effect[effectID])
case "brightness": ZigoEngine.doTween(target, ColorFX.BRIGHTNESS, -70, 0);
break;
case "grayscale": ZigoEngine.doTween(target, ColorFX.SATURATION, -100, 0);
break;
// Setup interactive
target.onRelease = function():Void
// unhide image + move to center
if (!this.release)
delete this.onEnterFrame;
this.release = true;
current = this;
var index:Number = this.index;
// extends mask producing fully visible image
ZigoEngine.doTween({ target:maskArray[index],
width: (2 * MWIDTH),
height: (2 * MHEIGHT),
ease:"easeInQuint",
time:1,
func:function():Void
// display description
descriptionClip._visible = true;
descriptionClip.swapDepths(current._parent.getNextHighestDepth());
descriptionClip.content.htmlText = description[current.index];
descriptionClip.content._width = current._width - 5;
descriptionClip.back._height = descriptionClip.content._height + 10;
descriptionClip.back._width = descriptionClip.content._width + 5;
descriptionClip._x = current._x;
descriptionClip._y = current._y + current._height - descriptionClip._height;
ZigoEngine.doTween({ target:descriptionClip,
alpha:100
// Disable effect
switch (Effect[effectID])
case "brightness": ZigoEngine.doTween(this, ColorFX.BRIGHTNESS, 0, 1);
break;
case "grayscale": ZigoEngine.doTween(this, ColorFX.SATURATION, 0, 2);
break;
// move to center
var centerX:Number = (SWIDTH - current._width) / 2;
var centerY:Number = (SHEIGHT - current._height) / 2;
ZigoEngine.doTween({ target:current,
x:centerX,
y:centerY,
ease:"easeOutQuint"
// display cover layer
var depth = this._parent.getNextHighestDepth();
layer.swapDepths(depth);
layer._visible = true;
ZigoEngine.doTween({ target:layer,
start_alpha:0,
alpha:layerAlpha
this.swapDepths(depth + 1);
// hide caption
ZigoEngine.doTween({ target:captionClip,
alpha:0,
func:function():Void
captionClip._visible = false;
else
// turn back to original position
ZigoEngine.doTween({ target:descriptionClip,
alpha:0,
func:function():Void
descriptionClip._visible = false;
ZigoEngine.doTween({ target:this,
_x2:this.oX,
_y2:this.oY,
func:function():Void
current.release = false;
ZigoEngine.doTween({ target:maskArray[this.index],
width: nWidth,
height: nHeight
ZigoEngine.doTween({ target:layer,
alpha:0,
func:function():Void
layer._visible = false;
// Enable effect
switch (Effect[effectID])
case "brightness": ZigoEngine.doTween(this, ColorFX.BRIGHTNESS, -70, 1);
break;
case "grayscale": ZigoEngine.doTween(this, ColorFX.SATURATION, -100, 2);
break;
// animate
target.onRollOver = function()
// animate image
if (!this.release)
this.onEnterFrame = function():Void
this._x2 += this.xk;
this._y2 += this.yk;
if (this._x2 >= this.xmax || this._x2 <= this.xmin) this.xk =- this.xk;
if (this._y2 >= this.ymax || this._y2 <= this.ymin) this.yk =- this.yk;
// effect
switch (Effect[effectID])
case "brightness": ZigoEngine.doTween(this, ColorFX.BRIGHTNESS, 50, 1);
break;
case "grayscale": ZigoEngine.doTween(this, ColorFX.SATURATION, 0, 2);
break;
case "photo flash": ZigoEngine.doTween(this, [ColorFX.BRIGHTNESS,ColorFX.CONTRAST],[100,100], 0);
ZigoEngine.doTween(this,[ColorFX.BRIGHTNESS,ColorFX.CONTRAST],[0,0], 2);
break;
// Show caption
captionClip.swapDepths(_global.base.getNextHighestDepth());
captionClip.captionText.text = caption[this.index];
captionClip._visible = true;
ZigoEngine.doTween({ target:captionClip,
x:_xmouse + 10,
y:_ymouse - 10,
start_alpha:0,
alpha:100
// disable
target.onRollOut = function():Void
delete this.onEnterFrame;
if (!this.release)
// effect
switch (Effect[effectID])
case "brightness": ZigoEngine.doTween(this, ColorFX.BRIGHTNESS, -70, 1);
break;
case "grayscale": ZigoEngine.doTween(this, ColorFX.SATURATION, -100, 2);
break;
// hide caption
ZigoEngine.doTween({ target:captionClip,
alpha:0,
func:function():Void
captionClip._visible = false;
// Fade in image
ZigoEngine.doTween({ target:target,
start_alpha:0,
alpha:100,
time:3
// Movie Clip Loader
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(mylistener);
loader.loadClip(src, image[index]);
function createMaskContainer():Void
// Mask container
maskContainer = this.createEmptyMovieClip("maskContainer", 100000);
// Cover layer
layer = this.attachMovie("layer", "layer", 200000);
layer._width = SWIDTH;
layer._height = SHEIGHT;
layer._x = SWIDTH / 2;
layer._y = SHEIGHT / 2;
layer._alpha = layerAlpha;
layer.useHandCursor = false;
layer.onRelease = function():Void { };
layer._visible = false;
// attach mask clip and place in proper position
var k:Number = 0;
for (var i:Number = 0; i < rows; i++)
for (var j:Number = 0; j < columns; j++)
maskArray[k] = new MovieClip();
maskArray[k] = maskContainer.attachMovie("mask", "mask" + k, k);
maskArray[k]._x = (j + 1) * strokeThickness + j * 50 + 25;
maskArray[k]._y = (i + 1) * strokeThickness + i * 50 + 25;
k++;
DynamicRegistration.initialize(maskContainer);
maskContainer.setRegistration(maskContainer._width / 2, maskContainer._height / 2);
maskContainer._x2 = SWIDTH / 2;
maskContainer._y2 = SHEIGHT / 2;
MWIDTH = maskContainer._width;
MHEIGHT = maskContainer._height;
maskContainer._visible = false;
var deltaX:Number = bWidth / MWIDTH;
var deltaY:Number = bHeight / MHEIGHT;
maskContainer._xscale2 = deltaX * 100;
maskContainer._yscale2 = deltaY * 100;
nWidth = 50 + strokeThickness * (deltaX - 1) / deltaX;
nHeight = 50 + strokeThickness * (deltaY - 1) / deltaY;
mWidth = nWidth * deltaX;
mHeight = nHeight * deltaY;
for (var i:Number = 0; i < TOTAL; i++)
maskArray[i]._width = nWidth;
maskArray[i]._height = nHeight;
// attach preloader
preloader[i] = this.attachMovie("preloader", "preloader" + i, i + 8000);
preloader[i]._x = (maskArray[i]._x / MWIDTH) * (maskContainer._width) + maskContainer._x;
preloader[i]._y = (maskArray[i]._y / MHEIGHT) * (maskContainer._height) + maskContainer._y;
// Attach caption
captionClip = this.attachMovie("caption", "captionClip", 99999);
captionClip._visible = false;
function stopMoving():Void
for (var i:Number = 0; i < TOTAL; i++) delete image[i].onEnterFrame;
function loadStyleSheet():Void
// Attach Description Clip
descriptionClip = this.attachMovie("description", "descriptionClip", 300000);
descriptionClip.content.autoSize = true;
descriptionClip._visible = false;
descriptionClip._alpha = 0;
var myStyle:TextField.StyleSheet = new TextField.StyleSheet;
myStyle.load(styleSheet);
myStyle.onLoad = function(loaded:Boolean):Void
if (loaded)
_global.base.descriptionClip.content.styleSheet = this;
target.onEnterFrame = function():Void
this._x2 += this.xk;
this._y2 += this.yk;
if (this._x2 >= this.xmax || this._x2 <= this.xmin) this.xk =- this.xk;
if (this._y2 >= this.ymax || this._y2 <= this.ymin) this.yk =- this.yk;Thanks, for your reply..
I've corrected it.. Its works as expected in Firefox and Chrome, problem with IE alone
My question is changing doctype declaration is alone enough for upgrading HTML 4 to 5?
Previously, i've used is
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
now i changed to <!DOCTYPE html> -
Loading Images Dynamically from MySql
Hello
I need to load images in my swf file dynamically from MySql
using PHP. Brief is I have one Swf file and and i want to animate
image in it but image should be come from dynamic path.. anybody
can tell me how to do this? if you want more brief then i can
provide it but it is urgent...
Thanks in advanceI'm afriad I don't have a solution to your problem but I was
curious as to why you would load it from a database vs a directory.
I know you can have users upload to a directory and a database but
I don't understand the benifit since I think you'd be adding load
on the database server. Is it a server side image manipulation
thing? -
O.T. NIH Image - Site For The Real Technical Experts.
Another one of the oddball programmes floating around in cyberspace :
NIH Image is a public domain image processing and analysis program for the Macintosh. It was developed at the Research Services Branch (RSB) of the National Institute of Mental Health (NIMH), part of the National Institutes of Health (NIH).
A free PC version of Image, called Scion Image for Windows, is available from Scion Corporation. There is also Image/J, a Java program inspired by Image that "runs anywhere".
Image can acquire, display, edit, enhance, analyze and animate images. It reads and writes TIFF, PICT, PICS and MacPaint files, providing compatibility with many other applications, including programs for scanning, processing, editing, publishing and analyzing images. It supports many standard image processing functions, including contrast enhancement, density profiling, smoothing, sharpening, edge detection, median filtering, and spatial convolution with user defined kernels.
Image can be used to measure area, mean, centroid, perimeter, etc. of user defined regions of interest. It also performs automated particle analysis and provides tools for measuring path lengths and angles. Spatial calibration is supported to provide real world area and length measurements. Density calibration can be done against radiation or optical density standards using user specified units. Results can be printed, exported to text files, or copied to the Clipboard.
A tool palette supports editing of color and gray scale images, including the ability to draw lines, rectangles and text. It can flip, rotate, invert and scale selections. It supports multiple windows and 8 levels of magnification. All editing, filtering, and measurement functions operate at any level of magnification and are undoable.
Image directly supports Data Translation and Scion frame grabber cards for capturing images or movie sequences using a TV camera. Acquired images can be shading corrected and frame averaged. Other frame grabbers are supported via plug-in modules.
Image can be customized in three ways: via a built-in Pascal-like macro language, via externally compiled plug-in modules and on the Pascal source code level. Example macros, plug-ins and complete source code can be downloaded from the Download page.
http://rsb.info.nih.gov/nih-image/about.htmlQuite easy my friend,
I see your using loadClip features to bring the portfolio
onto the site...
So inside the portfolio file, create an empty movieclip on
the first frame, make this movieclip however many seconds long you
want it to take until the next image shows up...
Then, whatever function calls the next image to show up
(which usually only runs when u click on a thumbnail), call that
function from the empty movie clip at the end of the clip....
Im not sure how to check the downloadin first though, just
make the movieclip long enough to download the stuff first...
Peace! -
Hello
I'm trying to load a swf called "polaroids.swf" into my main swf called "09replacesSWF.swf". I keep getting the error when I test the movie. I'm completely lost and have been at this for hours. If I just test polaroids.fla the movie works fine but if I try to load it into 09replacesSWF.swf, I get the error. I need some help PLEASE!!!!!
I tried to debug the movie and flash says......."Cannot display source code at this location".
....... TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Polaroids$iinit()
Here is my AS code
package {
import flash.display.*;
import flash.filters.*;
import flash.utils.*;
import flash.net.*;
import flash.events.*;
import flash.filters.DropShadowFilter;
import caurina.transitions.*;
public class Polaroids extends MovieClip {
//Variables
public var stageContainer:MovieClip;
private var _scaleTempo:Number;
private var _thumbStr:Number;
private var _stageHeight:Number;
private var _stageWidth:Number;
private var _count:Number;
private var _initBGHeight:Number;
private var _initBGWidth:Number;
//Arrays
private var _backgroundImageArr:Array;
private var _imageURLArr:Array;
private var _imageCaptionArr:Array;
private var _imagesArr:Array;
//Bitmaps
private var _image:Bitmap;
private var _backgroundImage:Bitmap;
private var _bitmap:BitmapData;
private var _backgroundBitmap:BitmapData;
//XML
private var _xmlLoader:URLLoader;
private var _imageXML:XML;
//Holders
private var _imageContainer:ImageContainer;
private var _backgroundImageHolder:MovieClip;
//Image States
private var _activeImage = null;
private var _previousActiveImage = null;
//Loaders
private var backgroundImageLoader:Loader;
public function Polaroids() {
//sets up initial variable values
_count = 0;
_backgroundImageArr=new Array;
_imageURLArr=new Array;
_imageCaptionArr=new Array;
_imagesArr=new Array;
_scaleTempo=9;
_thumbStr = .3;
backgroundImageLoader = new Loader();
_stageHeight=stage.stageHeight;
_stageWidth=stage.stageWidth;
_backgroundImageHolder = new MovieClip();
stageContainer = new MovieClip();
addChild(stageContainer);
init();
//Add Stage Listener
private function addedToStage(e:Event):void {
stage.addEventListener(Event.RESIZE, onResize);
Initialise
private function init():void {
//Setup stage
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
//Load XML
var _xmlLoader:URLLoader=new URLLoader;
_xmlLoader.load(new URLRequest("photos.xml"));
_xmlLoader.addEventListener(Event.COMPLETE,processXML);
this.addEventListener(Event.ADDED_TO_STAGE, addedToStage);
Process XML
private function processXML(e:Event):void {
_imageXML=new XML(e.target.data);
_backgroundImageArr[0] = _imageXML.@backgroundImage;
for (var i:int=0; i < _imageXML.*.length(); i++) {
_imageURLArr[i]=_imageXML.image[i].@url;
_imageCaptionArr[i]=_imageXML.image[i].@caption;
loadImages();
loadBackgroundImage();
Load Background Image
private function loadBackgroundImage():void {
backgroundImageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,addBack ground);
backgroundImageLoader.load(new URLRequest(_backgroundImageArr[0]));
Add background image to stage
private function addBackground(e:Event):void {
_backgroundImage=Bitmap(e.target.content);
_backgroundBitmap=_image.bitmapData;
_backgroundImage.smoothing = true;
_backgroundImageHolder.addChild(_backgroundImage);
_initBGHeight = backgroundImageLoader.contentLoaderInfo.height;
_initBGWidth = backgroundImageLoader.contentLoaderInfo.width;
if ((_initBGWidth/_initBGHeight) > (stage.stageWidth/stage.stageHeight)) {
_backgroundImageHolder.height = stage.stageHeight;
_backgroundImageHolder.width = _backgroundImageHolder.height * _initBGWidth / _initBGHeight;
} else {
_backgroundImageHolder.width = stage.stageWidth;
_backgroundImageHolder.height= _backgroundImageHolder.width * _initBGHeight / _initBGWidth;
Load Images
private function loadImages():void {
for (var i:int=0; i < _imageURLArr.length; i++) {
var imageLoader:Loader=new Loader;
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,addImage);
imageLoader.load(new URLRequest(_imageURLArr[i]));
Add images to MovieClip on Stage
private function addImage(e:Event):void {
_image=Bitmap(e.target.content);
_bitmap=_image.bitmapData;
_image.smoothing = true;
_imageContainer = new ImageContainer();
_imageContainer.falseBtn.buttonMode = true;
_imageContainer.falseBtn.doubleClickEnabled = true;
_imageContainer.imageHolder.addChild(_image);//Add Bitmap to a MoviClip _imageContainer
_image.x = _imageContainer.width/2 - (_image.width/2 + 15);
_image.y = _imageContainer.height/2 - (_image.height/2 + 80) ;
_imageContainer.imageCaption.text = _imageCaptionArr[_count];
_imageContainer.scaleX = _thumbStr;
_imageContainer.scaleY = _thumbStr;
_imageContainer.rotation = 30 - 60 * Math.random();
if (Math.round(Math.random() * 1) == 1) {
_imageContainer.y=stage.stageHeight * Math.random() + _imageContainer.height * 2;
if (Math.round(Math.random() * 1) == 1) {
_imageContainer.x=stage.stageWidth + _imageContainer.width * 2;
} else {
_imageContainer.x=- _imageContainer.width * 2;
} else {
_imageContainer.x=stage.stageWidth * Math.random() + _imageContainer.width * 2;
if (Math.round(Math.random() * 1) == 1) {
_imageContainer.y=stage.stageHeight + _imageContainer.height * 2;
} else {
_imageContainer.y=- _imageContainer.height * 2;
//Setup Attributes
_imageContainer.newX = Math.round((_imageContainer.width/2) + (stage.stageWidth-_imageContainer.width)*Math.random());
_imageContainer.newY = Math.round((_imageContainer.height/2) + (stage.stageHeight-_imageContainer.height)*Math.random());
_imageContainer.oldRotation = _imageContainer.rotation;
_imageContainer.oldX = _imageContainer.newX;
_imageContainer.oldY = _imageContainer.newY;
_imageContainer.startX = _imageContainer.x;
_imageContainer.startY = _imageContainer.y;
_imageContainer.oldHeight = _imageContainer.scaleY;
_imageContainer.oldWidth = _imageContainer.scaleX;
_imageContainer.id = _count;
_imageContainer.addEventListener(Event.ENTER_FRAME, animateImage);
_imageContainer.addEventListener(MouseEvent.MOUSE_DOWN,dragImage);
_imageContainer.addEventListener(MouseEvent.MOUSE_UP,dropImage);
_imageContainer.addEventListener(MouseEvent.MOUSE_OUT, dropImage);
_imageContainer.falseBtn.addEventListener(MouseEvent.DOUBLE_CLICK, setup_activeImage);
_imagesArr.push(_imageContainer);//Add image reference to an Array
_imageContainer.filters = [new DropShadowFilter(0,0,0,.9,8,8,1,1,false,false)];
//Button Listeners
_imageContainer.nextBtn.visible = false;
_imageContainer.previousBtn.visible = false;
_imageContainer.nextBtn.buttonMode = true;
_imageContainer.previousBtn.buttonMode = true;
_imageContainer.nextBtn.addEventListener(MouseEvent.MOUSE_DOWN, nextImage);
_imageContainer.previousBtn.addEventListener(MouseEvent.MOUSE_DOWN, previousImage);
//Add Container to Stage
addChild(_imageContainer);
stageContainer.addChild(_imageContainer);
_count++;
Animate Images onto Stage
private function animateImage(e:Event):void {
e.target.y += (e.target.newY - e.target.y) / _scaleTempo;
e.target.x += (e.target.newX - e.target.x) / _scaleTempo;
if (Math.round(e.target.y) == e.target.newY) {
e.target.removeEventListener(Event.ENTER_FRAME, animateImage);
Drag & Drop Images
private function dragImage(e:MouseEvent) {
if (e.currentTarget != _activeImage) {
e.currentTarget.startDrag();
if (_activeImage == null) {
stageContainer.setChildIndex(DisplayObject(e.currentTarget), stageContainer.numChildren-1);
} else {
stageContainer.setChildIndex(DisplayObject(e.currentTarget), stageContainer.numChildren-2);
private function dropImage(e:MouseEvent) {
if (e.currentTarget != _activeImage) {
e.currentTarget.stopDrag();
e.currentTarget.oldX = e.currentTarget.x;
e.currentTarget.oldY = e.currentTarget.y;
onResize Handler
private function onResize(e:Event):void {
for (var i:int = 0; i<_imagesArr.length; i++) {
if (_imagesArr[i] != _activeImage) {
_imagesArr[i].x = Math.round(stage.stageWidth * (_imagesArr[i].x/_stageWidth));
_imagesArr[i].y = Math.round(stage.stageHeight * (_imagesArr[i].y/_stageHeight));
} else {
_activeImage.x = stage.stageWidth/2;
_activeImage.y = stage.stageHeight/2;
_imagesArr[i].oldX = Math.round(stage.stageWidth * (_imagesArr[i].oldX/_stageWidth));
_imagesArr[i].oldY = Math.round(stage.stageHeight * (_imagesArr[i].oldY/_stageHeight));
_imagesArr[i].newX = Math.round(stage.stageWidth * (_imagesArr[i].newX/_stageWidth));
_imagesArr[i].newY = Math.round(stage.stageHeight * (_imagesArr[i].newY/_stageHeight));
_imagesArr[i].startX = Math.round(stage.stageWidth * (_imagesArr[i].startX/_stageWidth));
_imagesArr[i].startY = Math.round(stage.stageHeight * (_imagesArr[i].startY/_stageHeight));
//Background Resizer
if ((_initBGWidth/_initBGHeight) > (stage.stageWidth/stage.stageHeight)) {
_backgroundImageHolder.height = stage.stageHeight;
_backgroundImageHolder.width = _backgroundImageHolder.height * _initBGWidth / _initBGHeight;
} else {
_backgroundImageHolder.width = stage.stageWidth;
_backgroundImageHolder.height= _backgroundImageHolder.width * _initBGHeight / _initBGWidth;
_stageWidth = stage.stageWidth;
_stageHeight = stage.stageHeight;
Handle Selected Image
private function zoomImage():void {
stageContainer.setChildIndex(_activeImage, stageContainer.numChildren-1);
Tweener.addTween(_activeImage,{scaleX: 1, scaleY: 1, rotation: 0, x: _stageWidth/2 , y: _stageHeight/2, time: 1});
_activeImage.nextBtn.visible = true;
_activeImage.previousBtn.visible = true;
private function returnImage():void {
stageContainer.setChildIndex(_previousActiveImage, stageContainer.numChildren-2);
Tweener.addTween(_previousActiveImage,{scaleX: .3, scaleY: .3, rotation: _previousActiveImage.oldRotation, x: _previousActiveImage.oldX , y: _previousActiveImage.oldY, time: 1});
_previousActiveImage.nextBtn.visible = false;
_previousActiveImage.previousBtn.visible = false;
private function setup_activeImage(e:Event):void {
if ((_activeImage == null) && (_previousActiveImage == null)) {
_activeImage = e.currentTarget.parent;
zoomImage();
} else if (e.currentTarget.parent != _activeImage) {
_previousActiveImage = _activeImage;
_activeImage = e.currentTarget.parent;
zoomImage();
returnImage();
} else {
Tweener.addTween(_activeImage,{scaleX: .3, scaleY: .3, rotation: _activeImage.oldRotation, x: _activeImage.oldX , y: _activeImage.oldY, time: 1});
_activeImage.nextBtn.visible = false;
_activeImage.previousBtn.visible = false;
_activeImage = null;
_previousActiveImage = null;
Button Handlers
private function nextImage(e:MouseEvent):void {
var imageID = int(e.currentTarget.parent.id);
if (imageID < _imagesArr.length - 1) {
_previousActiveImage = e.currentTarget.parent;
_activeImage = _imagesArr[imageID+1];
zoomImage();
returnImage();
} else {
_previousActiveImage = e.currentTarget.parent;
_activeImage = _imagesArr[0];
zoomImage();
returnImage();
private function previousImage(e:MouseEvent):void {
var imageID = int(e.currentTarget.parent.id);
if (imageID != 0) {
_previousActiveImage = e.currentTarget.parent;
_activeImage = _imagesArr[imageID-1];
zoomImage();
returnImage();
} else {
_previousActiveImage = e.currentTarget.parent;
_activeImage = _imagesArr[_imagesArr.length-1];
zoomImage();
returnImage();
}Raymond,
The error is at line 55....when I debug
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Polaroids$iinit()[/Volumes/Herman's Passport/Music Rocka/RockaGallery/Polaroids.as:55]
So i'm looking in the code..... -
Flashing videos (or stop motion/strobe videos) make me physically ill. They affect my eyesight and make me dizzy and nauseous. More and more web sites today are doing this, here is an example: http://sports.yahoo.com/blogs/golf-devil-ball-golf/phil-mickelson-sinks-monster-putt-to-start-back-nine-211512594.html
I only have to see them for a few seconds (while the page is loading and before I can close it) and it me. Is there a Mozilla/Firefox add on that I can use to disable these 6-10sec flashers and not affect other video watching? Please help! ThanksThere can be various way to animate images.
In this case it is an animated image and you can set the <b>image.animation_mode</b> pref to "once" on the <b>about:config</b> page to animate such an image only once or use "none" to block the animation completely.
*http://kb.mozillazine.org/Animated_images
You can look at the SuperStop extension that allows to stop animated GIF images via Shift+Esc:
* https://addons.mozilla.org/firefox/addon/superstop/
Other pages may use other means like displaying a sequence on images via JavaScript or Flash objects.
*Flash Block: https://addons.mozilla.org/firefox/addon/flashblock/
*NoScript: https://addons.mozilla.org/firefox/addon/noscript/ -
Control Timeline and FLV Together
HI,
Where can I find ready-made buttons that will control an FLV and a timeline together? I have a swf with an FLV and I animate images and phrases on a movieClip timeline timed to what they say in the flv. I set up cuepoints that trigger the animations, so when users scrub, pause, etc. the timeline eventually catches up with the FLV, but it would be a lot nicer if the pause, scrub, etc. would do the same to the timeline and there was no lag time. I can get rid of the scrub and just use play/pause ff, rr if that helps.
Thanks,
Brianyou'll need to create those buttons yourself.
-
Playing jpeg pictures for different amount of time
hello everyone.
i'm new to jmf and i have been reading a bit about it. so i tried the sample code at: http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/JpegImagesToMovie.java (THIS WAS VERY HELPFUL)
this program displays each image for 1 second each.
now my problem is, i want to display these pictures for different amount of time... for example: display pic1 for 1 second, then display pic2 for 3 sec and so on.
can anyone help me please. THANKS>
i'm new to jmf ..>The [JMF forum|http://forums.sun.com/forum.jspa?forumID=28] is the best place to ask JMF related questions, but I am guessing you are also new to Java, and to programming, so this forum might be best for the moment.
>
..and i have been reading a bit about it. so i tried the sample code at: http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/JpegImagesToMovie.java (THIS WAS VERY HELPFUL)
this program displays each image for 1 second each.
now my problem is, i want to display these pictures for different amount of time... for example: display pic1 for 1 second, then display pic2 for 3 sec and so on.>Well.. given a run of [JpegImagesToMovie.java|http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/JpegImagesToMovie.java ] might go..
java JpegImagesToMovie -w 400 -h 300 -f 1
-o the.mov pic1.jpg pic2.jpg pic3.jpg..you might instead try..
java JpegImagesToMovie -w 400 -h 300 -f 1
-o the.mov pic1.jpg pic2.jpg pic2.jpg pic2.jpg pic3.jpg
Lines broken for clarity. Instead have command all in one line.
This simply repeats the second frame, three times. The .MOV format might 'optimize away' the second and third frame from the final file, but I would not count on it.
Of course, a far better way to animate images (with transition effects, full control over time, and all the bells and whistles) is to load the images into memory and create the slide show using the Java 2D abilities, mostly found in the Graphics class. -
PC Suite Should have a Theme Creator/Editor
I'm not very tech savvy. However, I like personalising my phones and making them reflect my individual style and tastes. It isn't always possible, or desirable, or easy, to just download 'free' themes you find off the internet. Most times I just don't know how, or if I manage to do it, it ends up not being compatible with the handset.
I would really love to have an application in PC Suite or even a basic one on the phone itself. One that might just let you mix and match a number of elements, or create some themes from scratch, and even have other themes from different handsets you could install on your own if you wished.
Would anyone else like this? Does anyone else think it would be cool?
AxelHi guys, thanx for the information. Since I started this topic, I have since been able to download Series 40 Theme Studio and have been working with it, with some success. I've already created and downloaded several themes to my phone and am now so into it that I'm constantly thinking up new ideas for them.
The series 40 theme stupio is pretty slow at times, and has a few cracks. For example, the programme gives you an option to set the background for the music player and radio, but no matter what you set, the same background you have already put for the main one is the one that the phone ends up showing in those applications. And there isn't any basic programme for doing something to "animate" images, such as making slide show of them or whatever, if you want to create your own special screen saver. For that, you will probably have to find your own gif image. Overall though, it is pretty good.
Which leads me to ask, do any of you guys know why Nokia doesn't include it in the basic PC suite package? -
Severe timing drift in animations
Has anyone experienced a problem where the timing of animations seriously drift?
I spent the better part of a full day getting a number of animations perfectly timed. Each slide has a sound bite and I animate images to perfectly synchronise to the voiceover. (It's necessary to do this because of Keynote's inability to play sounds over a partial series of a presentation.)
When I went to play the show today, the animations and sound were horribly out of time - sometimes by as much as 3 seconds! I need these to be perfectly in time - down to tenths of a second. It seems to be very unreliable as to how it's going to run. I had exactly the same thing happen on a show I did last week. 30 minutes before the presentation I had to change the timing of about 60% of the show.
Has anyone seen this or can anyone explain why this is happening. I didn't have the problem with earlier versions of Keynote (I'm using 3.0.1)
I'm fearful that halfway through a show the timing is just going to drift and the presentation will become a farce.
regards and thanks
//k
powerbook Mac OS X (10.4.7)Your only option I think will be exporting to QT, checking the timings, tweaking it a bit and exporting till you've got something that works in QT. Right now you just can't trust Keynote's timings, especially down to the 10th of a second.
Maybe you are looking for
-
How can I view free-response text answers in the Summary Report of FormsCentral?
Can we view full individual free-responses in the Summary Report of FormsCentral? One of the only things that keeps me using Survey Monkey occasionally over FormsCentral is that I can't find a way for FormsCentral to show users' free-response answers
-
New Version Doesn't Work On ESPN
All I get is the black box on most of espn.com. The problem started when I downloaded the new version. I can watch video on most sites; but the screen simply stays black, with no arrows or control bar at the bottom (play, volume, etc.) on espn.com an
-
How to give date in where of select statement
hi iam using this stmt SELECT AUFNR WERKS KDAUF KDPOS PLNBEZ GAMNG GMEIN GSTRP GLTRP FROM CAUFV INTO TABLE TB_CAUFV WHERE AUFNR IN S_AUFNR AND KDAUF IN S_KDAUF AND WERKS IN
-
Dear Frineds previously i am usning 10g rt now i have installed 11g can u tell me the exact differance between 10g and 11g how can i find this practilcally, thanks
-
Is a Trigger Multi Thread?
I'm trying to execute a SELECT statement WHERE status = X to make some operations when I insert a row in my Table. If there is another insert until is execute the firs insert, the Trigger is executed in other Thread or waits until the first ended? Is