001: /*
002: * $Id: MovieSetCommand.java,v 1.5 2002/05/29 03:54:49 skavish Exp $
003: *
004: * ===========================================================================
005: *
006: * The JGenerator Software License, Version 1.0
007: *
008: * Copyright (c) 2000 Dmitry Skavish (skavish@usa.net). All rights reserved.
009: *
010: * Redistribution and use in source and binary forms, with or without
011: * modification, are permitted provided that the following conditions are met:
012: *
013: * 1. Redistributions of source code must retain the above copyright
014: * notice, this list of conditions and the following disclaimer.
015: *
016: * 2. Redistributions in binary form must reproduce the above copyright
017: * notice, this list of conditions and the following disclaimer in
018: * the documentation and/or other materials provided with the
019: * distribution.
020: *
021: * 3. The end-user documentation included with the redistribution, if
022: * any, must include the following acknowlegement:
023: * "This product includes software developed by Dmitry Skavish
024: * (skavish@usa.net, http://www.flashgap.com/)."
025: * Alternately, this acknowlegement may appear in the software itself,
026: * if and wherever such third-party acknowlegements normally appear.
027: *
028: * 4. The name "The JGenerator" must not be used to endorse or promote
029: * products derived from this software without prior written permission.
030: * For written permission, please contact skavish@usa.net.
031: *
032: * 5. Products derived from this software may not be called "The JGenerator"
033: * nor may "The JGenerator" appear in their names without prior written
034: * permission of Dmitry Skavish.
035: *
036: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
037: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
038: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
039: * DISCLAIMED. IN NO EVENT SHALL DMITRY SKAVISH OR THE OTHER
040: * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
041: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
042: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
043: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
044: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
045: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
046: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
047: * SUCH DAMAGE.
048: *
049: */
050:
051: package org.openlaszlo.iv.flash.commands;
052:
053: import org.openlaszlo.iv.flash.parser.*;
054: import org.openlaszlo.iv.flash.api.*;
055: import org.openlaszlo.iv.flash.util.*;
056:
057: import org.openlaszlo.iv.flash.context.Context;
058: import java.util.Locale;
059:
060: public class MovieSetCommand extends GenericCommand {
061:
062: public MovieSetCommand() {
063: }
064:
065: public void doCommand(FlashFile file, Context context,
066: Script parent, int frame) throws IVException {
067: String rate = getParameter(context, "rate");
068: String width = getParameter(context, "width");
069: String height = getParameter(context, "height");
070: String color = getParameter(context, "color");
071: String encoding = getParameter(context, "encoding", "default");
072:
073: // set frame rate
074: if (rate != null) {
075: double f;
076: if (isDefault(rate)) {
077: f = 12.0;
078: } else {
079: f = Util.toDouble(rate, -1);
080: if (f <= 0.0 || f > 120.0) {
081: Log.logRB(Resource.INVALRATEVALUE,
082: new Object[] { rate });
083: f = 12.0;
084: }
085: }
086: file.setFrameRate(((int) f) << 8);
087: }
088:
089: // set movie width
090: double mywidth = file.getFrameSize().getWidth();
091: double myheight = file.getFrameSize().getHeight();
092:
093: if (width != null) {
094: if (isDefault(width)) {
095: mywidth = 550 * 20;
096: } else {
097: mywidth = Util.toInt(width, 550) * 20;
098: }
099: }
100:
101: // set movie height
102: if (height != null) {
103: if (isDefault(height)) {
104: myheight = 400 * 20;
105: } else {
106: myheight = Util.toInt(height, 400) * 20;
107: }
108: }
109:
110: file.getFrameSize().setFrame(0, 0, mywidth, myheight);
111:
112: // set background color
113: if (color != null) {
114: Color c;
115: if (isDefault(color)) {
116: c = AlphaColor.white;
117: } else {
118: c = Util.toColor(color, AlphaColor.white);
119: }
120: parent.setBackgroundColor(new SetBackgroundColor(c));
121: }
122:
123: if (isDefault(encoding)) {
124: String lang = Locale.getDefault().getLanguage();
125: if (lang.equals(Locale.JAPANESE.getLanguage())) {
126: file.setEncoding("SJIS");
127: } else if (lang.equals(Locale.KOREAN.getLanguage())) {
128: file.setEncoding("EUC_KR");
129: }
130: } else {
131: file.setEncoding(encoding);
132: }
133:
134: }
135:
136: public boolean isGlobal() {
137: return true;
138: }
139: }
|