Adobe
Products
Acrobat
Creative Cloud
Creative Suite
Digital Marketing Suite
Digital Publishing Suite
Elements
Photoshop
Touch Apps
Student and Teacher Editions
More products
Solutions
Creative tools for business
Digital marketing
Digital media
Education
Financial services
Government
Web Experience Management
More solutions
Learning Help Downloads Company
Buy
Home use for personal and home office
Education for students, educators, and staff
Business for small and medium businesses
Licensing programs for businesses, schools, and government
Special offers
Search
 
Info Sign in
Welcome,
My cart
My orders My Adobe
My Adobe
My orders
My information
My preferences
My products and services
Sign out
Why sign in? Sign in to manage your account and access trial downloads, product extensions, community areas, and more.
Adobe
Products Sections Buy   Search  
Solutions Company
Help Learning
Sign in Sign out My orders My Adobe
Preorder Estimated Availability Date. Your credit card will not be charged until the product is shipped. Estimated availability date is subject to change. Preorder Estimated Availability Date. Your credit card will not be charged until the product is ready to download. Estimated availability date is subject to change.
Qty:
Purchase requires verification of academic eligibility
Subtotal
Review and Checkout
Adobe Developer Connection / Fireworks Developer Center /

Using the 3D Rotate command in Fireworks CS3

by Aaron Beall

Aaron Beall

Created

14 May 2007

Page tools

Share on Facebook
Share on Twitter
Share on LinkedIn
Bookmark
Print
extensibility Fireworks CS3

Requirements

User level

Beginning

Required products

  • Fireworks CS3 (Download trial)

Additional Requirements

3D Rotate command

3d_rotate_fw_cs3.zip (ZIP, 64K)

If you have experience working with Macromedia FreeHand or Adobe Illustrator, or if you have a background in 3D modeling and animation, you'll be excited to hear about the 3D Rotate command, an extension I created using the powerful JavaScript API included with Fireworks CS3, in conjunction with Adobe Flash CS3 Professional. It is not a panel that ships with Fireworks CS3.

The 3D Rotate command provides an interface that allows you to move and rotate any group of selected elements in 3D space (see Figure 1).

Graphic elements in Fireworks CS3 before and after applying the 3D Rotate command
Figure 1. Graphic elements in Fireworks CS3 before and after applying the 3D Rotate command

The 3D Rotate command is a modal command that you apply to a selection of elements in your PNG file. Because the 3D Rotate command is not a native Fireworks CS3 command, it has some limitations, which I will discuss later in this article. However, you can achieve many interesting effects using this command that are brand new to experienced Fireworks users. Let's proceed with a tour of the command interface and describe how you can rotate Fireworks elements in 3D.

Note: Unlike a command panel, which you select from the Window menu—and which stays persistent in a little panel window while you work on your document—a command is run from the Commands menu and basically pauses the application while it performs the specified command on your selection. 3D Rotate may look like a command panel but it's pretty much just one very complicated command.

Using the 3D Rotate command

The 3D Rotate command is very straightforward. First, select any number of elements on the Canvas. Your selections can include paths, groups, text, bitmaps, and symbols. Once you have selected the items that you wish to rotate as 3D objects, select Commands > Modify > 3D Rotate to run the command (see Figure 2).

3D Rotate command interface
Figure 2. 3D Rotate command interface

When you invoke the 3D Rotate command, the first thing you'll notice is that the command window is huge! There are two main reasons for the enlarged display window. First, as I was designing the command, I wanted to provide a preview window that offers interactive control, rather than fumbling with a wireframe representation of the graphics, or seeing only periodic image updates on the Canvas. Second, I found that it is not currently possible to always update the Canvas with a preview while the 3D Rotate command is running. The large command preview window makes it possible to preview the effect before the command is applied.

I find the large preview screen helpful as I determine the desired effect settings, but if you do not like the large preview window to cover the Canvas, resize the command window to make it smaller.

Let's review the options available in the command. If you look at the interface in the right column, you'll see three types of controls: Camera, Rotation, and View.

Camera

The Camera controls allow you position the relative rotation center point. You can also adjust the amount of camera perspective. If you have experimented with this setting, you may have noticed the camera does not start out at 0,0. The camera is not at zero coordinates because the graphic elements on the Canvas are not at 0,0—instead they are likely somewhere in the middle of the Canvas space.

The camera automatically centers the elements. By changing the camera's x and y values, you are changing the rotation center, and thus changing the distortion effect. As you decide on the best settings for your project, you can hold down the Spacebar and then click and drag on the preview area to pan around—the same way you can on the Fireworks Canvas.

The perspective setting allows you to increase the intensity of 3D distortions. By decreasing the number, you can make more dramatic distortion effects, similar to using a wide-angle lens. Be careful as you define your settings, though, because excessively narrow perspectives can cause unreasonable amounts of distortion.

Rotation

The rotation settings are at the heart of the 3D Rotate command. There are three axes to rotate around: x, y, and z. Drag the elements in the preview window to rotate around the x and y axes. If your selection contains gradients or patterns, the handles will be rotated with the elements as expected.

If you do not wish to rotate the fill handles for your project, you can keep the fills fixed in their original locations by unchecking the Rotate Fill Handles option. If this checkbox is unavailable (disabled), that simply means that the elements you've selected do not contain gradients or pattern fills.

Use the Transform Each option when you have multiple elements selected. If you check this option, each of the selected elements in the preview window will rotate around their own relative centers. Moving the camera while this option is selected makes the camera move the relative center of each individual element.

View

The View options are provided so that you can quickly determine the types of visual elements in your selection. This feature also allows you to disable the preview of various elements in order to make the preview display faster.

Pay particular attention to the Curves option; this option is enabled and can be selected whenever your elements include a path with Bézier curves. As you apply the 3D Rotate command, you'll notice that rendering rotated Bézier curves can decrease the performance of the preview window. If you find the preview running slowly and your element includes Bézier curves, try unselecting the Curves checkbox to improve preview performance and increase rendering speed.

The background color of the command's preview window matches your document background color by default. Depending on the location of the selected elements on the Canvas, however, you may find it helpful to change the background color of the preview window to increase the contrast and make it easier to see the effect you are creating.

Note: The remaining buttons—Cancel, Accept, Preview on Canvas, and Help—are self-explanatory. The Preview on Canvas option may be disabled. This option works only if your element selection is comprised completely of paths.

Suggested usage for the 3D Rotate command

The 3D Rotate command may not be useful to all Fireworks designers, depending on your style and project goals, but I hope that many of you will agree that it can be useful—if used sparingly—to add an extra dimension to your artwork.

Give it a try. You might find that 3D rotations can make your graphic design projects stand out by the use of perspective. Although some designers have found workarounds to give the illusion of 3D effects, the 3D Rotate command makes the process easier and faster. Try rotating a logo slightly, creating background elements that have some perspective, or experiment with creating an animation that has a unique little twist (see Figure 3).

Example of a design that implements 3D perspective to create a dramatic effect
Figure 3. Example of a design that implements 3D perspective to create a dramatic effect

Limitations of the 3D Rotate command

As you work with the 3D Rotate command, the most obvious limitation you'll encounter is that not all elements you work with in your design are made up of vector points. Because text, symbols, and bitmap graphics are not defined by vector points, they cannot be displayed in the command preview area. And since the actual graphic representation cannot be rendered, a bounding box is used instead and nonvector elements are displayed as a red box with an X (see Figure 4). Fortunately, these nonvector elements are still transformed into the desired 3D rotation settings by the command when you click the Accept button.

Bitmaps, text, and symbols displayed with a bounding box in the command preview area
Figure 4. Bitmaps, text, and symbols displayed with a bounding box in the command preview area

The Preview on Canvas checkbox is also limited because it applies only to vector elements that are defined by vector points. If your selection before invoking the command contains any elements that are not vectors, the Preview on Canvas option will be disabled.

Another limitation of the 3D Rotate command relates to the algorithm used to create the 3D transformation. You can see this occur when you define a very narrow perspective using large objects and then select a sharp angle of rotation. In this scenario, the points are sometimes transformed to unexpected locations, which can create undesirable results (see Figure 5). I describe this display issue as a partial mirroring or jumbled effect of the elements.

Unexpected results can occurring when applying a sharp rotation angle to large objects with narrow perspectives
Figure 5. Unexpected results can occurring when applying a sharp rotation angle to large objects with narrow perspectives

You may have seen a similar rendering effect in FreeHand or Illustrator. This is a result of a mathematical issue in the command that might be resolved with some programming revisions in the future. As a workaround for now, if you experience this unexpected rotation, try changing the perspective to a higher number to eliminate the unwanted behavior.

As you use the 3D Rotate command, you may notice that some visual settings in Fireworks are not rendered in the preview window. Items that are not rendered include filters, blend modes, pattern fills, some gradient types, feathered/hard edges (only anti-aliased edges), special strokes, grayscale masking, rectangle primitives' rounded corners, and gradient opacity nodes that do not match the color nodes' positions.

Another thing to keep in mind when using the 3D Rotate command is overall performance. The command does not have any issues rotating simple objects in 3D space. However, you may notice performance issues if you select a large number of elements to rotate. The same performance issues can occur if the selected elements for rotation include a great number of vector points.

If you have some experience working with Fireworks, you may have experienced slower performance when using the Transform tool on a large collection of elements. Similarly, attempting to apply 3D rotation to many elements simultaneously can reduce the overall performance speed. If you are working with the 3D Rotate command and you notice performance issues, try unchecking the Curves option (if the option is available); doing so often increases performance and reduces rendering time.

Where to go from here

I created this particular command on my own. It is worth noting that any developer with some Flash and JavaScript knowledge (and a steady supply of coffee) could make a similar command to extend Fireworks CS3. It really is not difficult to extend Fireworks. This command is a good demonstration of the power of the Fireworks CS3 extension API, as well as the strength of the Fireworks community.

As I was developing this command, I implemented the 3D rotation math that's described in one of Trevor McCauley's excellent online tutorials, Scripting 3D in Flash. Also included in this command is the ability to render Fireworks curves as Flash curves, which I discovered in Approximating Cubic Bézier Curves in Flash MX by Timothée Groleau. I'd like to send a shout out to both Trevor and Timothée for their groundbreaking work, and also encourage you to develop your own Fireworks commands to share new functionality with the Fireworks community.

This command is brand new and has just been released as version 1.0. If you have ideas for other features and Fireworks commands, please forward them my way. Send your feedback to contact@abeall.com. I'd love to hear from you!

More Like This

  • Foundation Fireworks excerpts: Visual effects and extending Fireworks
  • Developing an effective Fireworks workflow
  • Using the Color Palette panel in Fireworks CS3
  • Using the Fireworks to XAML panel in Fireworks CS3
  • Using the Gradient panel in Fireworks CS3
  • Handling Fireworks events with ActionScript 3.0
  • Using the Guides panel in Fireworks CS3
  • Exploring the Demo Current Document command in Fireworks CS3
  • Creating Fireworks Panels – Part 2: Advanced Custom Panel Development
  • Enhancing rich symbols in Fireworks CS3

Tutorials & Samples

Tutorials

  • Creating jQuery Mobile website themes in Fireworks
  • Extracting CSS properties from Fireworks design objects
  • Working with CSS sprites in Fireworks CS6

Samples

  • Twitter Trends
  • Flex 4.5 reference applications
  • Mobile Trader Flex app on Android Market

Fireworks Forum

More
04/19/2012 How to center multiple text in a button
04/22/2012 What exactly needs to be done to have my browser output text into a path that the user cannot type..
04/21/2012 Website Ranking
04/20/2012 Link problem with Fireworks CS5 - net::ERR_FILE_NOT_FOUND

Fireworks Cookbooks

More
09/07/2011 How do I use FXG XML markup in Shape subclasses?
10/15/2010 Flex4 Dotted Line
06/25/2010 ComboBox that uses a NativeMenu (Air API)
05/21/2010 Localizing a Creative Suite 5 extension

Products

  • Acrobat
  • Creative Cloud
  • Creative Suite
  • Digital Marketing Suite
  • Digital Publishing Suite
  • Elements
  • Mobile Apps
  • Photoshop
  • Touch Apps
  • Student and Teacher Editions

Solutions

  • Digital marketing
  • Digital media
  • Web Experience Management

Industries

  • Education
  • Financial services
  • Government

Help

  • Product help centers
  • Orders and returns
  • Downloading and installing
  • My Adobe

Learning

  • Adobe Developer Connection
  • Adobe TV
  • Training and certification
  • Forums
  • Design Center

Ways to buy

  • For personal and home office
  • For students, educators, and staff
  • For small and medium businesses
  • For businesses, schools, and government
  • Special offers

Downloads

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

Company

  • News room
  • Partner programs
  • Corporate social responsibility
  • Career opportunities
  • Investor Relations
  • Events
  • Legal
  • Security
  • Contact Adobe
Choose your region United States (Change)
Choose your region Close

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Österreich - Deutsch
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Hrvatska
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • Suomi
  • France
  • Deutschland
  • Magyarország
  • Ireland
  • Israel - English
  • ישראל - עברית
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • الشرق الأوسط وشمال أفريقيا - اللغة العربية
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Polska
  • Portugal
  • România
  • Россия
  • Srbija
  • Slovensko
  • Slovenija
  • España
  • Sverige
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.

Terms of Use | Privacy Policy and Cookies (Updated)

Ad Choices

Reviewed by TRUSTe: site privacy statement