Random Animation for 4 Buttons
Hello lovely people. I seek help. I appologise but I have no competency with Javascript.
I have 4 buttons wich are 4 different symbols. Each button has a simple 1second animation. I have a mouseover and a mouseout script attached to an invisable rectangle over each button/symbol.
mouseover
sym.play();
mouseout
sym.playReverse();
When the mouse enters a button it plays the animation forward. When the mouse leaves the button the animation plays in reverse.
What I want is the page to load and prior to a user placing the mouse cusor in one of the buttons. A button to be chosen at random, the button animation to play. Once the animation is complete I want it to play in reverse. Then choose another button at random and repeat infintely until a user places the mouseover a button. When the user places a mouse cursor over a button I want the button to check if it's at the end of the buttons animation. If the button is at the end of the animation I want the buttom animation state to stop. If the button is not at the end of the animation I want it to play to the end of the animation. I also want to check the animation state of all the other buttons. If any of the animations are in the process of playing or at the end of their animation I want them reversed.
I currently have a script attached to the stage.
var randomNum = Math.floor((Math.random()*4)+1);
if (randomNum == 1){
sym.getComposition().getStage().getSymbol("TL").play(0);
else if (randomNum == 2){
sym.getComposition().getStage().getSymbol("TR").play(0);
else if (randomNum == 3){
sym.getComposition().getStage().getSymbol("BL").play(0);
else {
sym.getComposition().getStage().getSymbol("BR").play(0);
When the page loads it selects a button at random and plays the animation.
You can view the sample page here. http://www.fnwireless.net/Test%204%20Buttons.html
A big thankyou to anyone who posts a reply. If you need any further clarrification for my ramblings please let me know.
Hi,
From what I understood from your explanation , I have prepared a sample and attached it here . Please take a look at it . Hope it helps .
Let me know if anything else you need .
Thanks
Saurav
Similar Messages
-
Services for object buttons randomly disappearing from FB03
Hello SAP Experts,
We display an FI document via tcode FB03 (Display Document) and use the "services for object" buttons to attach documents via the "create attachment" button and also to view attached documents via the "attachment list" button.
However, quite often when displaying the FI document after a document has been attached, the "services for objects" buttons are not displayed. Just a blank toolbar appears.
Later on the when the FI document is displayed again via tcode FB03 (Display Document), the "services for objects" buttons do appear and the attachments can then be displayed.
As the attachments can be viewed sometimes, I would say that this issue is not related to security.
Any idea's what maybe causing the "services for objects" buttons randomly disappearing???
Regards,
SAP MuppetHello SAP Experts,
Any ideas or comments here???
Regards,
SAP Muppet -
Make animated rollover in Flash for Muse buttons
Hello.
I am new to Adobe Muse, but more familliar with Flash. I am also new to HTML.
I am wondering if it is possible to make a rollover animation in Flash to play as a rollover animation for buttons in Muse. I would like it so that when the mouse curser hovers over the button, it plays a simple animation of appering and dissapering stars over the text. I have heard of Adobe Edge, but I am not really familiar with it, so if there is any specific setup for a Flash rollover animation e.g. HTML5 Canvas or whatever, please let me know. Also, I am wondering if a HTML5 canvas Flash animation will play on phones and tablets, or if anything made with Flash using whatever setup, will even work on phones and tablets.
Thank you for your suggestions and assistance.You may need to create the fully function button with all states and mouse interactivity in Flash itself and then place it in Muse and apply a link to it.
Since buttons with states in Muse use background fills which can only be certain image types like PNG, JPG, etc. Since you can't apply a SWF as a CSS background fill, it won't be possible to use it for one of the states of the button.
Hope this helps.
Cheers,
Vikas -
Need help with animation, for my XAML game
Hello friends,
I need help in creating animation for my snake and ladder game(C#,XAML). I have completed the game logic, but can't understand how to animate my UI.
1. I want to animate 6 dice images so that when the player clicks on the Roll Dice Button a shuffle animation will play, and while the animation is playing the user can't click any thing.
2. I want the player disc to move one step at a time (animation) on the game board.
Please help me I am new to animation. Kindly give a replyHello,
I would recommend using
Storyboards and / or the
XAML animation library.
Other resources:
Storyboarded animations (XAML)
XAML animation library sample
I hope this helps,
James
Windows SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/ -
Multiple click points for one button and movie clip
I am trying to make a single button into a multiple click
point. I have a movie clip on the stage and I have an invisible
button over it. The movie clip consists of a single timeline that
has an ambient animation running and looping intially. I have three
more labeled sections of that timeline that each contain a
different animated sequence as click point animations for that
movie clip. I want the user to click on the button on the stage and
the first labeled click point animation of that movie clip will
play. I want that action to be stored so that when the user clicks
again then the second labeled click point animation will play then
they will click for the third in the same way. In between user
clicks I want the ambient animation loop in the beginning of that
movie clip timeline to play. When the user has clicked the 3rd and
last animated sequence then the whole thing will reset and be
available again. Can anyone let me know how that can be
accomplished. I originally scripted it through tell target to play
the first but I don't know how to move forward. Thanks!What version of Flash are you using? Telltarget is very
old... try something like this:
// array of the animations
myAnims = ['firstAnim','secondAnim','thirdAnim']; // these
are also frame labels
// your current animation index in the array, arrays start at
0,
// so we start at -1 which is like before anything
currAnim = -1;
// function to play the next animation
function nextAnim(){
// add one to the current animation index
currAnim++;
// if you've reached the end of the array, start back at 0
if(currAnim >= myAnims.length)currAnim = 0;
// now tell the MovieClip to play based on the value of the
current array index
myMovieClip.gotoAndPlay(myAnims[currAnim]);
Then on the button you just put:
on(release){
nextAnim();
And at the end of each animation on the timeline, put:
gotoAndPlay(1);
And at the end of the ambient loop at the beginning I guess
you have that, too, so it loops.
Hope that helps -
I am writting a test using a sequencer to test for multiple button click
I'm using flex sdk 4.1 and have a situation where a button click is sometimes called twice. I am writting a test for this using a sequencer and it will run for at least one button click, what I am not sure is how to test for multiple click events(which shouldn't happen, but occours randomly in my project)
package tests.view
import flash.events.MouseEvent;
import flexunit.framework.Assert;
import mx.events.FlexEvent;
import org.flexunit.async.Async;
import org.fluint.sequence.SequenceEventDispatcher;
import org.fluint.sequence.SequenceRunner;
import org.fluint.sequence.SequenceWaiter;
import org.fluint.uiImpersonation.UIImpersonator;
import views.AddComments;
public class TestAddComments
private var view:AddComments;
[Before(async,ui)]
public function setUp() : void
view = new AddComments;
Async.proceedOnEvent( this, view, FlexEvent.CREATION_COMPLETE, 600 );
UIImpersonator.addChild( view );
[Test]
public function testButtonClick():void
view.addCommentBtn
var sequence:SequenceRunner = new SequenceRunner( this );
sequence.addStep( new SequenceEventDispatcher( view.addCommentBtn, new MouseEvent( 'click', true, false ) ) );
sequence.addStep( new SequenceWaiter( view.addCommentBtn, MouseEvent.CLICK, 100 ) );
sequence.run();The only way you could test for that type of circumstance... one where something may happen... is to do so with a timeout. In other words, you cannot let the test pass simply because the first event occurred.
Two ways to handle this... with sequences:
Instead, you write a test that expects 2 clicks. In the assertion handler (which would only be reached if both clicks occur) you would fail the test:
fail('i shouldnt be here');
In the Waiter for the 2nd click, you would specify a timeout handler. That timeout handler will get called in the 2nd click does not occur in the specified time... (finding that time is the hard part). The default timeout handler fails the test, however, in your case, your timeout handler would just happily do any assertions needed and move on. A timeout does not necessarily mean failure... in your case, it is correct
Second choice:
You could create a timer. Create an event handler for the button click which increments a counter. Start the timer, do your test. However, have your test pending on the timer's completion rather than something like the click.. In that case, you would then be able to just check the count:
private var clickCount:int = 0;
[Test]
public function testButtonClick():void {
var timer:Timer = new Timer( 100, 1 );
Async.handleEvent( this, timer, TimerEvent.COMPLETE, checkClickCount );
view.addCommentBtn.addEventListener( 'click', function( e:Event ):void { clickCount++ } );
view.addCommentBtn.dispatchEvent( new MouseEvent( 'click;, true, false ) );
private function checkClickCount( e:Event ):void {
assertEquals( 1, clickCount );
However, I can't imagine how the test you are describing could ever yield more than one click event... I am guessing the problem is elsewhere, but this will help you verify
Mike -
How to add animation to a button
Hello,
My DPS page below contains a series of button that each have 2 actions(Goto URL{navto://} and Sound media) which work great.
However, I would like to add a simple action so that the button image "jumps up" when it is clicked.
What is the best way to achive this and can the animation action be added in addition to the existing actions for the button? I'm looking for the simplest method, as I have not used Edge or Flash.
I'm using Indesign CS5.5
Any help greatly received.
Regards,
Iain.....Hello Bob,
I think that is exactly my problem. See screenshots below. Note tray frame size. Is there a solution?
Regards,
Iain.... -
Actionscript Help for Simple Button Events
Hey everyone,
I'm pretty new to flash and I think this is a fairly simple animation, but I'm not quite sure how to write out the action script for it. I have a website that has very similiar animations to www.cookstreet.net. I have shapes and text that fly in from the bottom when a button is clicked, but I want to get them to fly back out of the top of the screen when any other button is clicked before any new content loads back in from the bottom. What should I add to the action script to tell flash to first check and see if there is content loaded on the screen when a button is clicked, and if there is, to go to the animation that flies that content out of the top and then return to the animation of the new content coming in from the bottom? What I currently have set up for my buttons is:
function handleClick( pEvent:MouseEvent):void
if( pEvent.target == reel )
gotoAndPlay("Reel");
else if( pEvent.target == home)
gotoAndPlay("Home");
else if( pEvent.target == news)
gotoAndPlay("News");
else if( pEvent.target == film)
gotoAndPlay("Film")
else if( pEvent.target == about)
gotoAndPlay("About")
else if( pEvent.target == contact)
gotoAndPlay("Contact")
reel. addEventListener(MouseEvent .CLICK, handleClick );
home. addEventListener(MouseEvent .CLICK, handleClick );
news. addEventListener(MouseEvent .CLICK, handleClick );
film. addEventListener(MouseEvent .CLICK, handleClick );
about. addEventListener(MouseEvent .CLICK, handleClick );
contact. addEventListener(MouseEvent .CLICK, handleClick );
Thanks for the help!
-SofiWhat you can probably do is have a variable that you use to keep track of who's present on the stage, starting it off as a null value. That way when you click a button if the value is null is skips processing a moving out scenario and jumps to the moving in one. So your event listeners would be calling a different handler function that first takes care of the moving out needs, if any, which in turn calls the moving in function after the moving out activity is done (or the timeline for moving out does... I don't know how you plan to implement the moving out stuff). If it is a functiob to function process, the moving out function could pass the event.target to the moving in function so that wouldn't have to change at all, except to add in somewhere wha the new variable value should be.
If what I just offered is one big ball of confusion... take your time and inch your way thru it. -
Looking for Image Button Applet
I'm looking for a simple image button applet (normal state, mouse-over and mouse-click) which can refer to a HTML or start a Javascript function. Can anyone help?
KippieHi,
This is the source code. I don't quite understand what I should do with the tokens. I hope this is allright. Thanks for your help
Kippie.
import java.net.URL;
import java.awt.Color;
import java.util.Vector;
import java.util.Enumeration;
import java.util.StringTokenizer;
import java.applet.Applet;
import java.applet.AudioClip;
Program Name: ImageURLButtonBar
Author: Paul Whitelock
Version: 1.1
Copyright: (c) 1997 by Paul Whitelock and Modern Minds, Inc.
Requires: ImageURLButtonBar.class
ButtonBar.class
ButtonBarObserver.class (Interface definition)
ButtonRegion.class
ButtonAnimate.class
Modifications: v1.01 (15 April 97)
* Added "sticky" button behavior (controlled
by applet "stick" parameter)
v1.03 (25 June 97)
* Added applet parameter "useCodeBase". If useCodeBase
is true, then image file locations will be based on the directory
in which the Java class files are located. If useCodeBase is false, then
the locations will be based on the HTML directory. Note that audio
file locations are always based on the Java directory. The default
for useCodeBase is false (use HTML directory for base).
* The "stick" parameter will now accept a button number in
addition to the value of "true" or "false". If a button number
is specified, then that button will be "stuck" down
when the button bar initializes.
* Added the capability of loading multiple URLs for each button
with an optional target for each URL.
v1.1 (25 September 97)
* Added "baseBrighten" and "baseBrightenTint" parameters to control
highlighting for base button bar.
* Added "mouseOverBrighten" and "moBrightenTint" parameters to control
highlighting for base button bar.
* Added "mdBrightenTint" and "mdBrightenAll" parameters to control
highlighting for base button bar. Previous versions of the applet
supported "mouseDownBrighten," but only if button borders were not
drawn for the button-down button bar (the "mdBrightenAll" can be set
to "true" to override the this default behavior).
* An "appletBGColor" parameter has been added to set the
applet background color. The applet background color is
sometimes visible during scrolling or during a page repaint.
NOTE: This source code was composed using Microsoft Visual J++
with tab stops of 4. Text may not be formatted correctly
if another editor is used.
******************************** PARAMETERS ********************************
Applet Parm ButtonBar Class Parm Default Value
================== ======================= ==================
appletBGColor
disableBadURL true
mouseEnterAudio null (audio disabled)
mouseClickAudio null (audio disabled)
buttonDownAudio null (audio disabled)
stick false
* useCodeBase base false (i.e., use getDocumentBase())
orient barHorizontal horizontal if applet width > height
base baseBarName none - parameter REQUIRED
mouseOver mouseOverBarName null
mouseOver2 mouseOverBar2Name null
mouseDown mouseDownBarName null
mouseDownOver mouseDownOverBarName null
buttonsDisabled buttonsDisabledBarName null
background backgroundImageName null
barXPos barXBackgroundPos 0
barYPos barYBackgroundPos 0
buttonBorders drawButtonBorders ButtonBar.BORDERS_NONE
borderColorTL borderColorTopLeft null (Color.white if error)
borderColorBR borderColorBottomRight null (Color.gray if error)
borderIntensity borderIntensityPercent 50 (used only if borders)
borderSize buttonBorderSize 1 (used only if borders)
downShift downShift false
downShiftAmt downShiftAmt buttonBorderSize
baseBrighten baseBrightenPct
baseBrightenTint baseBrightenTint
mouseOverBrighten mouseOverBrightenPct
moBrightenTint mouseOverBrightenTint
mouseDownBrighten mouseDownBrightenPct
mdBrightenTint mouseDownBrightenTint
mdBrightenAll mouseDownBrightenAll
buttonsDisabledDim buttonsDisabledDimPct 25 (used only if no buttonsDisabled)
grayBarBrighten grayBarBrighten 0
frameRate frameRate 150 (used only if mouseOver2)
* If useCodeBase is true, then all file locations are based on the Java class file
directory (i.e., use getCodeBase()).
public class ImageURLButtonBar extends Applet implements ButtonBarObserver {
// Instance Variables
ButtonBar buttonBar;
Vector buttonURL = new Vector(10, 10);
Vector buttonURLTarget = new Vector(10, 10);
Vector buttonDescription = new Vector(10, 10);
AudioClip mouseEnterAudio = null;
AudioClip mouseClickAudio = null;
AudioClip buttonDownAudio = null;
// Applet Initialization
public void init() {
// =================================================================
// Applet ImageURLButtonBar specific parameters
// =================================================================
// appletBGColor
// Set applet background color
String parm = getParameter("appletBGColor");
if (parm != null) {
try {
setBackground(new Color(Integer.parseInt(parm, 16)));
catch (Exception e) {
reportError("appletBGColor");
// disableBadURL
// If true, then any button with an invalid URL will be disabled
parm = getParameter("disableBadURL");
boolean disableBadURL;
if (parm == null || !parm.equals("false")) disableBadURL = true;
else disableBadURL = false;
// mouseEnterAudio
// Sound to play each time the mouse enters any of the buttons
parm = getParameter("mouseEnterAudio");
if (parm != null) {
mouseEnterAudio = getAudioClip(getCodeBase(), parm);
if (mouseEnterAudio == null) reportError("Can't load " + parm);
// mouseClickAudio
// Sound to play each time a mouse down click occurs in a button
parm = getParameter("mouseClickAudio");
if (parm != null) {
mouseClickAudio = getAudioClip(getCodeBase(), parm);
if (mouseClickAudio == null) reportError("Can't load " + parm);
// buttonDownAudio
// Sound to play each time a mouse up occurs in a button (i.e, the
// button has be toggled through it's "down" position)
parm = getParameter("buttonDownAudio");
if (parm != null) {
buttonDownAudio = getAudioClip(getCodeBase(), parm);
if (buttonDownAudio == null) reportError("Can't load " + parm);
// stickyBar
// If the "stick" applet parameter is "true", then buttons will stay
// "stuck" in the down position until another button is clicked.
// If the "stick" applet parameter is the number of a button in the
// button bar, then that button will be "stuck" down when the
// button bar initializes.
int stickyBar = -1;
parm = getParameter("stick");
if (parm != null && !parm.toLowerCase().equals("false")) {
try {
stickyBar = Integer.parseInt(parm);
catch (Exception e) {
stickyBar = 0;
// =================================================================
// Class ButtonBar specific parameters
// =================================================================
// orient (barHorizontal)
// If this parameter = 'h' then the button bar is horizontal
// If this parameter = 'v' then the button bar is vertical
// If this parameter is not specified, then the button bar is
// horizontal if the applet width is greater than the applet height
boolean horizontal;
parm = getParameter("orient");
if (parm == null) horizontal = size().width > size().height;
else horizontal = parm.equals("h") ? true : false;
// base (baseBarName)
// The base image file for the buttons. This is the only image
// file that MUST be specified.
String baseBar = getParameter("base");
if (baseBar == null) {
reportError("Parameter 'base' REQUIRED!");
return;
// barXPos (barXBackgroundPos)
// barYPos (barYBackgroundPos)
// If a background image is specified then these to parameters
// represent the top-left corner location where the button bar
// should be placed on the background
int barXPos = 0, barYPos = 0;
try {
parm = getParameter("barXPos");
if (parm != null) barXPos = Integer.parseInt(parm);
parm = getParameter("barYPos");
if (parm != null) barYPos = Integer.parseInt(parm);
catch (Exception e) {
reportError("barXPos or barYPos");
barXPos = barYPos = 0;
// buttonBorders (drawButtonBorders)
// "none" = do not draw any button borders
// "all" = draw borders around all button bar buttons
// "base" = draw borders only around buttons on base button bar
// "other" = draw borders around all button bar buttons EXCEPT base button bar buttons
parm = getParameter("buttonBorders");
int drawButtonBorders = ButtonBar.BORDERS_NONE;
if (parm != null) {
if (parm.equals("base")) drawButtonBorders = ButtonBar.BORDERS_BASE;
else if (parm.equals("other")) drawButtonBorders = ButtonBar.BORDERS_OTHER;
else if (parm.equals("all")) drawButtonBorders = ButtonBar.BORDERS_ALL;
// borderColorTL (borderColorTopLeft)
// borderColorBR (borderColorBottomRight)
// Normally, borders are drawn around buttons by lightening or darkening
// the image in the border region. A specific color can be used instead
// for the top and left borders and/or the bottom and right borders. The
// value specified for either of these two parameters should be a hexadecimal
// number (e.g., "FF0000" for red, "888888" for medium gray, etc.).
Color borderColorTopLeft = null;
Color borderColorBottomRight = null;
try {
parm = getParameter("borderColorTL");
if (parm != null) borderColorTopLeft = new Color(Integer.parseInt(parm, 16));
parm = getParameter("borderColorBR");
if (parm != null) borderColorBottomRight = new Color(Integer.parseInt(parm, 16));
catch (Exception e) {
reportError("borderColorTL or borderColorBR");
borderColorTopLeft = Color.white;
borderColorBottomRight = Color.gray;
// borderIntensity (borderIntensityPercent)
// If borders are drawn for buttons, and if a border color is not specified
// (see above), then the image in the border region will be lightened or
// darkened by this percentage to create the borders.
int borderIntensityPercent = 50;
try {
parm = getParameter("borderIntensity");
if (parm != null) borderIntensityPercent = Integer.parseInt(parm);
catch (Exception e) {
reportError("borderIntensity");
borderIntensityPercent = 50;
// borderSize (buttonBorderSize)
// The size of borders, if borders are specified.
int buttonBorderSize = 1;
try {
parm = getParameter("borderSize");
if (parm != null) buttonBorderSize = Integer.parseInt(parm);
catch (Exception e) {
reportError("borderSize");
// downShift
// If true, then the button image is shift down and right downShiftAmt
// (see below) pixels when the mouse is clicked on the button.
parm = getParameter("downShift");
boolean downShift = (parm == null || !parm.equals("true")) ? false : true;
// downShiftAmt
// If downShift is true, then the button image is shift down and right
// downShiftAmt (see above) pixels when the mouse is clicked on the button.
int downShiftAmt = buttonBorderSize;
try {
parm = getParameter("downShiftAmt");
if (parm != null) downShiftAmt = Integer.parseInt(parm);
catch (Exception e) {
reportError("downShiftAmt");
// baseBrighten (baseBrightenPct)
// The base bar will be lightened by this percentage
int baseBrightenPct = 0;
try {
parm = getParameter("baseBrighten");
if (parm != null) baseBrightenPct = Integer.parseInt(parm);
catch (Exception e) {
reportError("baseBrighten");
// mouseOverBrighten (mouseOverBrightenPct)
// A button will be lightened by this percentage when the mouse
// moves over a button.
int mouseOverBrightenPct = 0;
try {
parm = getParameter("mouseOverBrighten");
if (parm != null) mouseOverBrightenPct = Integer.parseInt(parm);
catch (Exception e) {
reportError("mouseOverBrighten");
// mdBrightenAll (mouseDownBrightenAll)
// A button will be lightened by this percentage when the mouse
// moves over a button.
boolean mouseDownBrightenAll = false;
parm = getParameter("mdBrightenAll");
if (parm != null && parm.charAt(0) == 't') mouseDownBrightenAll = true;
// mouseDownBrighten (mouseDownBrightenPct)
// A button will be lightened by this percentage when it is
// clicked.
int mouseDownBrightenPct = 0;
try {
parm = getParameter("mouseDownBrighten");
if (parm != null) mouseDownBrightenPct = Integer.parseInt(parm);
catch (Exception e) {
reportError("mouseDownBrighten");
// baseBrightenTint (mouseOverBrightenTint)
// moBrightenTint (mouseOverBrightenTint)
// mdBrightenTint (mouseDownBrightenTint)
Color baseBrightenTint = null;
Color mouseOverBrightenTint = null;
Color mouseDownBrightenTint = null;
try {
parm = getParameter("baseBrightenTint");
if (parm != null) baseBrightenTint = new Color(Integer.parseInt(parm, 16));
parm = getParameter("moBrightenTint");
if (parm != null) mouseOverBrightenTint = new Color(Integer.parseInt(parm, 16));
parm = getParameter("mdBrightenTint");
if (parm != null) mouseDownBrightenTint = new Color(Integer.parseInt(parm, 16));
catch (Exception e) {
reportError("baseBrightenTint, moBrightenTint or mdBrightenTint");
// buttonsDisabledDim (buttonsDisabledDimPct)
// If a button is disabled and if there is no buttonsDisabled image,
// then the button will be dimmed by this percentage.
int buttonsDisabledDimPct = 25;
try {
parm = getParameter("buttonsDisabledDim");
if (parm != null) buttonsDisabledDimPct = Integer.parseInt(parm);
catch (Exception e) {
reportError("buttonsDisabledDim");
// grayBarBrighten
// If there is no mouseOver image, then the base image will be used for
// the mouseOver image, and a grayscale version of the base image will
// be used for base button images. This parameter can be used to lighten
// COLORS (not grays) in the image before it is converted to grayscale.
// This can help if the standard conversion produces buttons that are
// too dark.
int grayBarBrighten = 0;
try {
parm = getParameter("grayBarBrighten");
if (parm != null) grayBarBrighten = Integer.parseInt(parm);
catch (Exception e) {
reportError("grayBarBrighten");
// frameRate
// If a mouseOver2 image is specified, then this parameter controls
// how quickly animation will be performed (using mouseOver and mouseOver2
// images) in milliseconds when the mouse is moved over a button.
int frameRate = 150;
try {
parm = getParameter("frameRate");
if (parm != null) frameRate = Integer.parseInt(parm);
catch (Exception e) {
reportError("frameRate");
// =================================================================
// Instantiate the button bar
// =================================================================
try {
// Allow the use of documentBase (default) or codeBase for image file
// base directory.
URL documentBase;
parm = getParameter("useCodeBase");
if (parm == null || parm.equals("false")) documentBase = getDocumentBase();
else documentBase = getCodeBase();
// Create the button bar
buttonBar = new ButtonBar(
horizontal, /* barHorizontal */
documentBase, /* base */
baseBar, /* baseBarName */
getParameter("mouseOver"), /* mouseOverBarName */
getParameter("mouseOver2"), /* mouseOverBar2Name */
getParameter("mouseDown"), /* mouseDownBarName */
getParameter("mouseDownOver"), /* mouseDownOverBarName */
getParameter("buttonsDisabled"),/* buttonsDisabledBarName */
getParameter("background"), /* backgroundImageName */
barXPos, /* barXBackgroundPos */
barYPos, /* barYBackgroundPos */
drawButtonBorders, /* drawButtonBorders */
borderColorTopLeft, /* borderColorTopLeft */
borderColorBottomRight, /* borderColorBottomRight */
borderIntensityPercent, /* borderIntensityPercent */
buttonBorderSize, /* buttonBorderSize */
downShift, /* downShift */
downShiftAmt, /* downShiftAmt */
baseBrightenPct, /* baseBrightenPct */
baseBrightenTint, /* baseBrightenTint */
mouseOverBrightenPct, /* mouseOverBrightenPct */
mouseOverBrightenTint, /* mouseOverBrightenTint */
mouseDownBrightenAll, /* mouseDownBrightenAll */
mouseDownBrightenPct, /* mouseDownBrightenPct */
mouseDownBrightenTint, /* mouseDownBrightenTint */
buttonsDisabledDimPct, /* buttonsDisabledDimPct */
grayBarBrighten, /* grayBarBrighten */
frameRate /* frameRate */
// =================================================================
// Add buttons to the button bar
// =================================================================
ButtonRegion buttonToAdd;
String buttonNbr, urlString;
URL urlForButton;
int nbr = 0;
int buttonStart, buttonSize;
// Initialize button on bar flag (used to determine if at least one button
// was successfully added to the button bar)
boolean buttonOnBar = false;
// This loop will be exited when no more buttons can be found in the HTML
while (true) {
// Construct the prefix for the button parameters
buttonNbr = "button" + ++nbr;
// Find the starting offset and the size of the button
// If null is returned as the starting offset parameter value for the
// button, then all buttons should have been read so the loop can
// be exited.
try {
parm = getParameter(buttonNbr + "Start");
if (parm == null) break;
buttonStart = Integer.parseInt(parm);
buttonSize = Integer.parseInt(getParameter(buttonNbr + "Size"));
catch (Exception e) {
reportError("Button" + nbr + " start or size in error or missing");
buttonStart = 0;
buttonSize = 0;
// Create a ButtonRegion for the button
// The button ID will be set to the number of the button (this will
// be converted to an integer later when a buttonBarEvent is received).
buttonToAdd = new ButtonRegion("" + nbr, buttonStart, buttonSize);
// If the buttons on this button bar are "sticky" buttons, then
// enable "sticky" behavior for this button. The button will always
// "pop-up" whenever another button is clicked.
if (stickyBar >= 0) {
buttonToAdd.stickyButton(true, ButtonRegion.POPUP_ALWAYS, false);
// If the current button number matches the value of stickyBar, then the
// current button should be "stuck" down for its initial state.
if (stickyBar == nbr) buttonToAdd.setStuck(true);
// Try to add the button (i.e., the ButtonRegion) to the buttonBar
if (buttonBar.addButton(buttonToAdd)) {
// Set flag to indicate that at least one button has been added
buttonOnBar = true;
// The button was successfully added, so save the button's description
// (which will be displayed in the status bar) and the target frame
// for the button URL in the appropriate Vector.
buttonDescription.addElement(getParameter(buttonNbr + "Desc"));
buttonURLTarget.addElement(getParameter(buttonNbr + "Target"));
// Try to create a URL for the button.
// If the URL is invalid, then place an error message in the
// buttonURLTarget Vector (this will be used to warn the user
// when the button is clicked). Also, if disableBadURL is true, then
// disable the button.
String theURL;
urlString = getParameter(buttonNbr + "URL");
if (urlString != null) {
Enumeration urls = new StringTokenizer(urlString);
while (urls.hasMoreElements()) {
theURL = (String)urls.nextElement();
try {
urlForButton = new URL(theURL);
catch (Exception e) {
try {
urlForButton = new URL(getDocumentBase(), theURL);
catch (Exception e2) {
reportError("Button" + nbr + " has invalid URL");
buttonURLTarget.setElementAt("Invalid URL", nbr - 1);
urlString = null;
break;
else {
reportError("Button" + nbr + " has no URL");
buttonURLTarget.setElementAt("No URL", nbr - 1);
buttonURL.addElement(urlString);
// Remove any unused elements in the Vectors
buttonURL.trimToSize();
buttonURLTarget.trimToSize();
buttonDescription.trimToSize();
// If no buttons were added, throw exception
if (!buttonOnBar) throw new IllegalArgumentException("No buttons on bar");
// Let the buttonBar know that all buttons have been defined. This is
// really only necessary if downShift is true, but it won't hurt calling
// the method in either case.
buttonBar.allButtonsDefined();
// Add the applet as an observer so that the applet will be notified
// when button events occur.
buttonBar.addButtonObserver(this);
// Enable the button bar now that all buttons have been defined.
// (the buttonBar is disabled when it is created and must be
// specifically enabled).
buttonBar.enable(true);
// Add the buttonBar to the applet
setLayout(null);
add(buttonBar);
catch (Exception e) {
reportError("Can't create ButtonBar\n" + e);
// buttonBarEvent
// This method is called by the ButtonBar whenever a button event occurs
// It provides the ButtonBar that the event occurred for, the button ID
// that the event occurred for, and the event type.
public void buttonBarEvent(ButtonBar barID, String buttonID, int buttonEvent) {
String description;
// The buttonBar will send an IMAGES_READY event when all button bar images
// have been prepared. We are not interested in this event, but only in
// certain "action" events that occur for a button.
if (buttonEvent != ButtonBar.IMAGES_READY) {
// A number in String format was assigned as the buttonID when each
// ButtonRegion was created. The buttonID String will now be converted
// back into a number that can be used as a Vector index to retrieve
// button specific information (i.e., URL, target frame, and description).
int buttonNbr = Integer.parseInt(buttonID) - 1;
switch (buttonEvent) {
// If a mouseDown event has occurred for the button, and if an
// AudioClip is available for this event, play the AudioClip.
case ButtonBar.MOUSE_CLICK:
if (mouseClickAudio != null) mouseClickAudio.play();
break;
// If the mouse has been moved over a button, display the button's
// description in the browser's status area. If the button that the mouse
// is over is an active button, and if there is an AudioClip available
// for this event, then play the audio clip.
case ButtonBar.MOUSE_ENTER:
case ButtonBar.MOUSE_ENTER_DISABLED:
description = (String)buttonDescription.elementAt(buttonNbr);
if (description != null) showStatus(description);
if (mouseEnterAudio != null && buttonEvent == ButtonBar.MOUSE_ENTER) {
mouseEnterAudio.play();
break;
// If the mouse has been moved off of a button and if the button has
// description text associated with it, then clear the browser's
// browser's status area.
case ButtonBar.MOUSE_EXIT:
case ButtonBar.MOUSE_EXIT_DISABLED:
description = (String)buttonDescription.elementAt(buttonNbr);
if (description != null) showStatus("");
break;
// If the button has been depressed (i.e., a mouseDown followed by
// a mouseUp for the same button) then load the URL(s) for the button
// in the target frame(s), if specified. If the URL is null, then the
// URL was found to be missing or invalid, so display the text stored in
// the buttonURLTarget Vector in the brower's status area. If there is
// an AudioClip for the event, play the audio.
case ButtonBar.BUTTON_DOWN:
// Get the string of URLs and Targets for the button
String urlString = (String)buttonURL.elementAt(buttonNbr);
String targetString = (String)buttonURLTarget.elementAt(buttonNbr);
// If there is at least one URL for the button
if (urlString != null) {
URL urlForButton;
String theURL;
String theTarget;
Enumeration urls = new StringTokenizer(urlString);
Enumeration targets = null;
if (targetString != null) targets = new StringTokenizer(targetString);
// While there is another URL for the button
while (urls.hasMoreElements()) {
// Get the next String token that represents a URL
theURL = (String)urls.nextElement();
// Convert the String to a URL
try {
urlForButton = new URL(theURL);
catch (Exception e) {
try {
urlForButton = new URL(getDocumentBase(), theURL);
catch (Exception e2) {
urlForButton = null;
break;
// If the String was successfully convert to a URL
if (urlForButton != null) {
// If there is a target for this URL
if (targets != null && targets.hasMoreElements()) {
// Get the String that represents the target
theTarget = (String)targets.nextElement();
// If the target String does NOT begin with a "-",
// then load the URL in the target
if (theTarget.charAt(0) != '-') {
getAppletContext().showDocument(urlForButton, theTarget);
// Else a target for this URL should not be used
else {
getAppletContext().showDocument(urlForButton);
// Else there is no target for this URL, so just show
// the URL.
else {
getAppletContext().showDocument(urlForButton);
// Else URL is missing or invalid
else showStatus((String)buttonURLTarget.elementAt(buttonNbr));
if (buttonDownAudio != null) buttonDownAudio.play();
break;
// Error reporting
private void reportError(String message) {
message = "[ImageURLButtonBar] Error - " + message;
System.out.println(message);
showStatus(message);
} -
How to use the same script for multiple buttons
Hi,
I've only just started using flash so any help would be great!
I'm creating a blockbusters type game, I have a grid of 20 buttons and I need them (individually) to turn blue on click and red on double click. I've managed to do it with the first one using this code;
var clicked:Boolean = false;
bn1.addEventListener(MouseEvent.CLICK, bn1click);
function bn1click(event:MouseEvent):void {
clicked = true;
var newColorTransform:ColorTransform = bn1.transform.colorTransform;
if(clicked){
newColorTransform.color = 0x064258;
bn1.transform.colorTransform = newColorTransform;
bn1.doubleClickEnabled = true;
var doubleclicked:Boolean = false;
bn1.addEventListener(MouseEvent.DOUBLE_CLICK, bn1dclick);
function bn1dclick(event:MouseEvent):void {
doubleclicked = true;
var newColorTransform:ColorTransform = bn1.transform.colorTransform;
if(clicked){
newColorTransform.color = 0xac1e23;
bn1.transform.colorTransform = newColorTransform;
Now I'm having trouble getting the same to work for the rest of the buttons, they are each named bn2, bn3 etc. They need to work individually and remain blue/red once clicked. I've tried listing them as addEventListener commands but not having a great deal of success!
Any help would be greatly appreciated, thanks!
TomoOne way to do this is to use arrays to keep track of the buttons and their properties.
var buttonList:Array = new Array(bn1,bn2,bn3);
var clickedList:Array = new Array();
var doubleClickedList:Array = new Array();
//then use a for loop to assign the functions and properties for each button:
var thisMany:int = buttonList.length; // this will give you the number of items in the buttonList array
for(var i:int = 0; i<thisMany; i++) {
buttonList[i].addEventListener(MouseEvent.CLICK,btnClick); // assign the click function to each button
buttonList[i].addEventListener(MouseEvent.DOUBLE_CLICK,btnDClick); // assign the double click function
clickedList.push(false); // add a false value for each button to this array
doubleClickedList.push(false);
buttonList[i].doubleClickEnabled = true; // set the double click property for each button
function btnClick(event:MouseEvent):void {
var thisButton:int = buttonList.indexOf(event.target); // figure out which button was clicked as an item in the array
clickedList[thisButton] = true; // change the value in the array
var newColorTransform:ColorTransform = buttonList[thisButton].transform.colorTransform;
if(clickedList[thisButton]){
newColorTransform.color = 0x064258;
buttonList[thisButton].transform.colorTransform = newColorTransform;
function btnDClick(event:MouseEvent):void {
var thisButton:int = buttonList.indexOf(event.target);
doubleClickedList[thisButton] = true;
var newColorTransform:ColorTransform = buttonList[thisButton].transform.colorTransform;
if(doubleClickedList[thisButton]){
newColorTransform.color = 0xac1e23;
buttonList[thisButton].transform.colorTransform = newColorTransform;
Now you can have any number of buttons, just add their instance names to the array at the top. -
Menu Button in ALV toolbar (multiple choices for a button)
Hi abapers,
I would like to have a button with multiple choices in the toolbar;
at the moment I have created a menu button with just one function.
Here is my code:
CLASS lcl_event_receiver (Definition)
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive.
ENDCLASS. "lcl_event_receiver DEFINITION
CLASS lcl_event_receiver (Implementation)
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_toolbar.
DATA: ls_toolbar TYPE stb_button.
*Separator
CLEAR ls_toolbar.
MOVE 3 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO e_object->mt_toolbar.
*Button
CLEAR ls_toolbar.
MOVE 1 TO ls_toolbar-butn_type.
MOVE 'EDIT' TO ls_toolbar-function.
MOVE icon_change TO ls_toolbar-icon.
MOVE ' Modifica'(l02) TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
MOVE 'Modifica' TO ls_toolbar-quickinfo.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD. "handle_toolbar
ENDCLASS. "lcl_event_receiver IMPLEMENTATIONhi,
check this code and reward me if it helps you..
TYPE-POOLS : slis,icon.
*Structure declaration for tcodes
TYPES : BEGIN OF ty_table,
tcode TYPE tcode,
pgmna TYPE progname,
END OF ty_table.
*Structure for tocde text
TYPES : BEGIN OF ty_itext,
tcode TYPE tcode,
ttext TYPE ttext_stct,
sprsl TYPE sprsl,
END OF ty_itext.
*Structure for output display
TYPES : BEGIN OF ty_output,
tcode TYPE tcode,
pgmna TYPE progname,
ttext TYPE ttext_stct,
END OF ty_output.
*internal table and work area declarations
DATA : it_table TYPE STANDARD TABLE OF ty_table INITIAL SIZE 0,
it_output TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0,
it_ittext TYPE STANDARD TABLE OF ty_itext INITIAL SIZE 0,
wa_table TYPE ty_table,
wa_output TYPE ty_output,
wa_ittext TYPE ty_itext.
*Class definition for ALV toolbar
CLASS: lcl_alv_toolbar DEFINITION DEFERRED.
*Declaration for toolbar buttons
DATA : ty_toolbar TYPE stb_button.
Data declarations for ALV
DATA: c_ccont TYPE REF TO cl_gui_custom_container, "Custom container object
c_alvgd TYPE REF TO cl_gui_alv_grid, "ALV grid object
it_fcat TYPE lvc_t_fcat, "Field catalogue
it_layout TYPE lvc_s_layo, "Layout
c_alv_toolbar TYPE REF TO lcl_alv_toolbar, "Alv toolbar
c_alv_toolbarmanager TYPE REF TO cl_alv_grid_toolbar_manager. "Toolbar manager
*Initialization event
INITIALIZATION.
*Start of selection event
START-OF-SELECTION.
*Subroutine to get values from tstc table
PERFORM fetch_data.
*subroutine for alv display
PERFORM alv_output.
CLASS lcl_alv_toolbar DEFINITION
ALV event handler
CLASS lcl_alv_toolbar DEFINITION.
PUBLIC SECTION.
*Constructor
METHODS: constructor
IMPORTING
io_alv_grid TYPE REF TO cl_gui_alv_grid,
*Event for toolbar
on_toolbar
FOR EVENT toolbar
OF cl_gui_alv_grid
IMPORTING
e_object.
ENDCLASS. "lcl_alv_toolbar DEFINITION
CLASS lcl_alv_toolbar IMPLEMENTATION
ALV event handler
CLASS lcl_alv_toolbar IMPLEMENTATION.
METHOD constructor.
Create ALV toolbar manager instance
CREATE OBJECT c_alv_toolbarmanager
EXPORTING
io_alv_grid = io_alv_grid.
ENDMETHOD. "constructor
METHOD on_toolbar.
Add customized toolbar buttons.
variable for Toolbar Button
ty_toolbar-icon = icon_generate.
ty_toolbar-butn_type = 0.
ty_toolbar-text = 'Button1'.
APPEND ty_toolbar TO e_object->mt_toolbar.
ty_toolbar-icon = icon_voice_output.
ty_toolbar-butn_type = 0.
ty_toolbar-text = 'Button2'.
APPEND ty_toolbar TO e_object->mt_toolbar.
ty_toolbar-icon = icon_phone.
ty_toolbar-butn_type = 0.
ty_toolbar-text = 'Button3'.
APPEND ty_toolbar TO e_object->mt_toolbar.
ty_toolbar-icon = icon_mail.
ty_toolbar-butn_type = 0.
ty_toolbar-text = 'Button4'.
APPEND ty_toolbar TO e_object->mt_toolbar.
ty_toolbar-icon = icon_voice_input.
ty_toolbar-butn_type = 0.
ty_toolbar-text = 'Button5'.
APPEND ty_toolbar TO e_object->mt_toolbar.
Call reorganize method of toolbar manager to
display the toolbar
CALL METHOD c_alv_toolbarmanager->reorganize
EXPORTING
io_alv_toolbar = e_object.
ENDMETHOD. "on_toolbar
ENDCLASS. "lcl_alv_toolbar IMPLEMENTATION
*& Form fetch_data
text
--> p1 text
<-- p2 text
FORM fetch_data .
Select the tcodes upto 200 rows from TSTC
SELECT tcode
pgmna
FROM tstc
INTO CORRESPONDING FIELDS OF TABLE it_table
UP TO 200 ROWS
WHERE dypno NE '0000'.
*Select the tcode textx
IF it_table[] IS NOT INITIAL.
SELECT ttext
tcode
sprsl
FROM tstct
INTO CORRESPONDING FIELDS OF TABLE it_ittext
FOR ALL ENTRIES IN it_table
WHERE tcode = it_table-tcode
AND sprsl = 'E'.
ENDIF.
Apppending the data to the internal table of ALV output
LOOP AT it_table INTO wa_table.
wa_output-tcode = wa_table-tcode.
wa_output-pgmna = wa_table-pgmna.
For texts
READ TABLE it_ittext INTO wa_ittext WITH KEY tcode = wa_table-tcode.
wa_output-ttext = wa_ittext-ttext.
APPEND wa_output TO it_output.
CLEAR wa_output.
ENDLOOP.
ENDFORM. " fetch_data
*& Form alv_output
text
--> p1 text
<-- p2 text
FORM alv_output .
*Calling the ALV
CALL SCREEN 0600.
ENDFORM. " alv_output
Calling the ALV screen with custom container
On this statement double click it takes you to the screen painter SE51.Enter the attributes
*Create a Custom container and name it CC_CONT and OK code as OK_CODE.
*Save check and Activate the screen painter.
Now a normal screen with number 600 is created which holds the ALV grid. PBO of the actual screen , Here we can give a title and *customized menus
*& Module STATUS_0600 OUTPUT
text
MODULE status_0600 OUTPUT.
SET PF-STATUS 'xxxxxxxx'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0600 OUTPUT
calling the PBO module ALV_GRID.
*& Module ALV_GRID OUTPUT
text
MODULE alv_grid OUTPUT.
*create object for custom container
CREATE OBJECT c_ccont
EXPORTING
container_name = 'CC_CONT'.
*create object of alv grid
CREATE OBJECT c_alvgd
EXPORTING
i_parent = c_ccont.
create ALV event handler
CREATE OBJECT c_alv_toolbar
EXPORTING
io_alv_grid = c_alvgd.
Register event handler
SET HANDLER c_alv_toolbar->on_toolbar FOR c_alvgd.
Fieldcatalogue for ALV
PERFORM alv_build_fieldcat.
ALV attributes FOR LAYOUT
PERFORM alv_report_layout.
CHECK NOT c_alvgd IS INITIAL.
Call ALV GRID
CALL METHOD c_alvgd->set_table_for_first_display
EXPORTING
is_layout = it_layout
CHANGING
it_outtab = it_output
it_fieldcatalog = it_fcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDMODULE. " ALV_GRID OUTPUT
*& Form alv_build_fieldcat
text
<--P_IT_FCAT text
FORM alv_build_fieldcat.
DATA lv_fldcat TYPE lvc_s_fcat.
CLEAR lv_fldcat.
lv_fldcat-row_pos = '1'.
lv_fldcat-col_pos = '1'.
lv_fldcat-fieldname = 'TCODE'.
lv_fldcat-tabname = 'IT_OUTPUT'.
lv_fldcat-outputlen = 8.
lv_fldcat-scrtext_m = 'TCODE'.
APPEND lv_fldcat TO it_fcat.
CLEAR lv_fldcat.
lv_fldcat-row_pos = '1'.
lv_fldcat-col_pos = '2'.
lv_fldcat-fieldname = 'PGMNA'.
lv_fldcat-tabname = 'IT_OUTPUT'.
lv_fldcat-outputlen = 15.
lv_fldcat-scrtext_m = 'PROGNAME'.
APPEND lv_fldcat TO it_fcat.
CLEAR lv_fldcat.
lv_fldcat-row_pos = '1'.
lv_fldcat-col_pos = '3'.
lv_fldcat-fieldname = 'TTEXT'.
lv_fldcat-tabname = 'IT_OUTPUT'.
lv_fldcat-outputlen = 60.
lv_fldcat-scrtext_m = 'Description'.
APPEND lv_fldcat TO it_fcat.
CLEAR lv_fldcat.
ENDFORM. " alv_build_fieldcat
*& Form alv_report_layout
text
<--P_IT_LAYOUT text
FORM alv_report_layout.
it_layout-cwidth_opt = 'X'.
it_layout-zebra = 'X'.
ENDFORM. " alv_report_layout
PAI module of the screen created. In case we use an interactive ALV or
*for additional functionalities we can create OK codes
*and based on the user command we can do the coding.
*& Module USER_COMMAND_0600 INPUT
text
MODULE user_command_0600 INPUT.
ENDMODULE. " USER_COMMAND_0600 INPUT
thanks,
gupta -
Firefox has been randomly crashing for two days. I always have google and facebook running. Firefox seems to crash at random times - no specific web page loading. My Firefox is up to date.
There can be multiple reasons for crashing. Seeing this article would be helpful as it lists out the solution for this-
http://support.mozilla.com/en-US/kb/Firefox%20crashes?s=firefox+crash&as=s#os=win&browser=fx4 -
One function for multiple buttons?
I have a county map on my timeline with a list of each county as buttons ( there is 88 counties). I want to highlight the county on the map when I click the county's name from a list.
when I test this out, only the last one gets highlighted. I know I am missing something really simple. it does work if I write code for each button but I can't to seem to get it to work with only writing the function once for all buttons
var countyHigh:MovieClip = adamsHighlight;
var countyCheck:MovieClip = kickout.adamsCM;
kickout.adamsCheck_btn.addEventListener(MouseEvent.CLICK, highlightCounty);
kickout.allenCheck_btn.addEventListener(MouseEvent.CLICK, highlightCounty);
countyHigh = allenHighlight;
countyCheck = kickout.allenCM;
kickout.ashlandCheck_btn.addEventListener(MouseEvent.CLICK, highlightCounty);
countyHigh = ashlandHighlight;
countyCheck = kickout.ashlandCM;
function highlightCounty(event:Event):void{
if (countyHigh.alpha == 0)
countyHigh.alpha = .5;
else countyHigh.alpha = 0;
if(countyCheck.alpha == 0)
countyCheck.alpha = .5;
else
countyCheck.alpha = 0;
when I click all there buttons, the all highlight ashland county instead of their own county. I am using Flash Professional CS5 and only been playing with Flash for about a year.var previouslyHighlightedCounty:Movieclip;
function highlightCounty(e:MouseEvent):void{
if(previouslyHighlightedCounty){
//reset previouslyHighlightedCounty. ie, un-highlight
// highlight e.currentTarget
e.currentTarget=previouslyHighlightedCounty -
How to add a new button in IC tool bar and handle the event for the button?
Hi,
I am working on CRM 2007 Interaction center. To add a new button to IC toolbar, customizing is available to define a new button and then assign in to the profile.
In SPRO->CRM->IC webclient->Customer Specifc System Modifications->Define Toolbar Buttons, I defined one new button with ID ZSTART.
Now in SPRO->CRM->IC webclient->Basic Functions->Communication Channels->Define Toolbar Profiles , I selected Default profileid and in Generic Layout Buttons Tab, I added the new button ZSTART in Position 3.
So after completing the customizing when the user logs in using role IC_AGENT, the button (with ID:ZSTART) gets displayed in the IC toolbar too.
Now on click of this button, I need to create an object.
To do so, I have to catch the event which is raised by this new button.
Please let me how to implement the event handler for this new button. What will be the event name for this button click event and how I can subscribe for it ?
Please let me know if anyone of you have already worked on similar requirements.
Regards,
Manas.
Edited by: manas sahoo on Jul 22, 2008 7:49 PMHello Manas,
There are a couple of threads in the community that might help you out (if you haven't already found them):
Re: IC Web Client Toolbar
/message/3621917#3621917 [original link is broken]
Regards,
Renee Wilhelm
Edited by: Renee Wilhelm on Nov 6, 2008 7:46 PM -
[Feature Request] Better support for new buttons in JUNavigationBar
In my project I use a home made sub-class of JUNavigationBar, which contains some new functionality apart from a new button as well. This button allows me to refresh the currently selected row.
However, since I added this button though a simple this.add(), some of the functionality in JUNavigationBar may get confused.
For example, when I have removed some of the standard buttons but left my own button in place (setHasXXX()), the component index (calculated in JToolBar) and the array index for the buttons in JUNavigationBar may not match. This occasionally causes an ArrayIndexOutOfBoundsException.
In short, what I'm asking for, is a better way to manage buttons on JUNavigationBar. Even making the array of buttons and related methods and such protected in stead of private (so that my sub-class could handle it) would be a good start.Hi Arno,
I had a similar issue with trying to create a Nav bar with dynamic content. My solution was to leave all the standard buttons in place and to use setVisible(x) to make them appear or not as required.
BTW have you noticed that rollover behaviour isn't consistant ie works for FIRST/LAST etc but not for FIND/QUERY.
Regards
Andy
Maybe you are looking for
-
Do I need iPhoto 08 to see and use the mobileme features?
I currently have the iPhoto (ver 6) that came with my Mac Pro. I have a lot of expensive photo editing software on my mac that I do graphic design with so spending $80 on the iLife upgrade seems like a waste of $$ to me. I would however like to use t
-
How do I change the background image for a single tab on the navigation bar
I'm creating a movie website for TDKR and for the navigation bar, I intend to have a different character for each tab. However, I'm having trouble putting a single image each separate tab. Instead one image appears on each of the tabs. Here's an exam
-
How to get the FA completion date?
Hello, What is the correct way (from screen or backend) to find the date/time on which field activity was completed? I want the completion date, not the scheduled date (ci_fa.sched_dttm). Thanks in advance.
-
hi i ahve a problem in main window there are line items outputed in rows and columns seperated by vertical lines and horizontal lines now my requriment is that under a column say column3 i want an extra line to display some more data in that column o
-
Utilities icon listed twice in Applications Folder can i clear this?
Utilities icon is shown twice in Applications How can I clear this?