Movieclip width and height values

Hi all,
I have an object (movieclip) of W:83 H:82.8. When create a
motion tween using the object the values suddenly change to W:147
H:147 (but the object appears the same size on the stage). If I
then check the first frame of the tween, it's W:83 H82.8!!! So the
object has different W and H values on different frames but remains
exactly the same size. This obviously makes it difficult to match
sizes of stuff between frames and looks like a glitch.
Does anyone know what's going on here?
Cheers,
Jon

Even better than that, I can re-create the issue for you in a
new file:
http://www.jonmallinson.co.uk/client_area/width_height_issue.fla
It uses AS2, flashplayer 8, created in flash cs4 version 10.0
Ta!

Similar Messages

  • Java returning incorrect values for width and height of a Tiff image

    I have some TIFF images (sorry, I cannot post them b/c of there confidential nature) that are returning the incorrect values for the width and height. I am using Image.getWidth(null) and have tried the relevant methods from BufferedImage. When I open the same files in external viewers (Irfanview, MS Office Document Imaging) they look fine and report the "correct" dimensions. When I re-save the files, my code works fine. Obviously, there is something wrong with the files, but why would the Java code fail and not the external viewers? Is there some way I can detect file problems?
    Here is the code, the relevant section is in the print() routine.
    * ImagePrinter.java
    * Created on Feb 27, 2008
    * Created by tso1207
    import java.awt.Graphics2D;
    import java.awt.Image;
    import java.awt.print.PageFormat;
    import java.awt.print.PrinterException;
    import java.io.File;
    import java.io.IOException;
    import java.util.Iterator;
    import javax.imageio.ImageIO;
    import javax.imageio.ImageReader;
    import javax.imageio.stream.FileImageInputStream;
    import javax.imageio.stream.ImageInputStream;
    import com.shelter.io.FileTypeIdentifier;
    public class ImagePrinter extends FilePrintable
       private final ImageReader _reader;
       private final int _pageCount;
       private final boolean _isTiff;
       //for speed we will hold current page info in memory
       private Image _image = null;
       private int _imgWidth = 0;
       private int _imgHeight = 0;
       private int _currentPage = -1;
       public ImagePrinter(File imageFile) throws IOException
          super(imageFile);
          ImageInputStream fis = new FileImageInputStream(getFile());
          Iterator readerIter = ImageIO.getImageReaders(fis);
          ImageReader reader = null;
          while (readerIter.hasNext())
             reader = (ImageReader) readerIter.next();
          reader.setInput(fis);
          _reader = reader;
          int pageCount = 1;
          String mimeType = FileTypeIdentifier.getMimeType(imageFile, true);
          if (mimeType.equalsIgnoreCase("image/tiff"))
             _isTiff = true;
             pageCount = reader.getNumImages(true);
          else
             _isTiff = false;
          _pageCount = pageCount;
       public int print(java.awt.Graphics g, java.awt.print.PageFormat pf, int pageIndex)
          throws java.awt.print.PrinterException
          int drawX = 0, drawY = 0;
          double scaleRatio = 1;
          if (getCurrentPage() != (pageIndex - getPageOffset()))
             try
                setCurrentPage(pageIndex - getPageOffset());
                setImage(_reader.read(getCurrentPage()));
                setImgWidth(getImage().getWidth(null));
                setImgHeight(getImage().getHeight(null));
             catch (IndexOutOfBoundsException e)
                return NO_SUCH_PAGE;
             catch (IOException e)
                throw new PrinterException(e.getLocalizedMessage());
             if (!_isTiff && getImgWidth() > getImgHeight())
                pf.setOrientation(PageFormat.LANDSCAPE);
             else
                pf.setOrientation(PageFormat.PORTRAIT);
          Graphics2D g2 = (Graphics2D) g;
          g2.translate(pf.getImageableX(), pf.getImageableY());
          g2.setClip(0, 0, (int) pf.getImageableWidth(), (int) pf.getImageableHeight());
          scaleRatio =
             (double) ((getImgWidth() > getImgHeight())
                ? (pf.getImageableWidth() / getImgWidth())
                : (pf.getImageableHeight() / getImgHeight()));
          //check the scale ratio to make sure that we will not write something off the page
          if ((getImgWidth() * scaleRatio) > pf.getImageableWidth())
             scaleRatio = (pf.getImageableWidth() / getImgWidth());
          else if ((getImgHeight() * scaleRatio) > pf.getImageableHeight())
             scaleRatio = (pf.getImageableHeight() / getImgHeight());
          int drawWidth = getImgWidth();
          int drawHeight = getImgHeight();
          //center image
          if (scaleRatio < 1)
             drawX = (int) ((pf.getImageableWidth() - (getImgWidth() * scaleRatio)) / 2);
             drawY = (int) ((pf.getImageableHeight() - (getImgHeight() * scaleRatio)) / 2);
             drawWidth = (int) (getImgWidth() * scaleRatio);
             drawHeight = (int) (getImgHeight() * scaleRatio);
          else
             drawX = (int) (pf.getImageableWidth() - getImgWidth()) / 2;
             drawY = (int) (pf.getImageableHeight() - getImgHeight()) / 2;
          g2.drawImage(getImage(), drawX, drawY, drawWidth, drawHeight, null);
          g2.dispose();
          return PAGE_EXISTS;
        * <br><br>
        * Created By: TSO1207 - John Loyd
        * @since version XXX
        * @return
       public int getPageCount()
          return _pageCount;
       public void destroy()
          setImage(null);
          try
             _reader.reset();
             _reader.dispose();
          catch (Exception e)
          System.gc();
        * <br><br>
        * Created By: TSO1207 - John Loyd
        * @since Mar 25, 2008
        * @return
       public Image getImage()
          return _image;
        * <br><br>
        * Created By: TSO1207 - John Loyd
        * @since Mar 25, 2008
        * @return
       public int getImgHeight()
          return _imgHeight;
        * <br><br>
        * Created By: TSO1207 - John Loyd
        * @since Mar 25, 2008
        * @return
       public int getImgWidth()
          return _imgWidth;
        * <br><br>
        * Created By: TSO1207 - John Loyd
        * @since Mar 25, 2008
        * @param image
       public void setImage(Image image)
          _image = image;
        * <br><br>
        * Created By: TSO1207 - John Loyd
        * @since Mar 25, 2008
        * @param i
       public void setImgHeight(int i)
          _imgHeight = i;
        * <br><br>
        * Created By: TSO1207 - John Loyd
        * @since Mar 25, 2008
        * @param i
       public void setImgWidth(int i)
          _imgWidth = i;
        * <br><br>
        * Created By: TSO1207 - John Loyd
        * @since Mar 25, 2008
        * @return
       public int getCurrentPage()
          return _currentPage;
        * <br><br>
        * Created By: TSO1207 - John Loyd
        * @since Mar 25, 2008
        * @param i
       public void setCurrentPage(int i)
          _currentPage = i;
    }Edited by: jloyd01 on Jul 3, 2008 8:26 AM

    Figured it out. The files have a different vertical and horizontal resolutions. In this case the horizontal resolution is 200 DPI and the vertical is 100 DPI. The imgage width and height values are based on those resolution values. I wrote a section of code to take care of the problem (at least for TIFF 6.0)
       private void setPageSize(int pageNum) throws IOException
          IIOMetadata imageMetadata = _reader.getImageMetadata(pageNum);
          //Get the IFD (Image File Directory) which is the root of all the tags
          //for this image. From here we can get all the tags in the image.
          TIFFDirectory ifd = TIFFDirectory.createFromMetadata(imageMetadata);
          double xPixles = ifd.getTIFFField(256).getAsDouble(0);
          double yPixles = ifd.getTIFFField(257).getAsDouble(0);
          double xRes = ifd.getTIFFField(282).getAsDouble(0);
          double yres = ifd.getTIFFField(283).getAsDouble(0);
          int resUnits = ifd.getTIFFField(296).getAsInt(0);
          double imageWidth = xPixles / xRes;
          double imageHeight = yPixles / yres;
          //if units are in CM convert ot inches
          if (resUnits == 3)
             imageWidth = imageWidth * 0.3937;
             imageHeight = imageHeight * 0.3937;
          //convert to pixles in 72 DPI
          imageWidth = imageWidth * 72;
          imageHeight = imageHeight * 72;
          setImgWidth((int) Math.round(imageWidth));
          setImgHeight((int) Math.round(imageHeight));
          setImgAspectRatio(imageWidth / imageHeight);
       }

  • Scripting TGetProperty width and height

    Hello all,
    i have a problem with the flash player in IE6 and FF2.
    I have a html page with some flash movie elements on it.
    I'm using SWFObject to bind the movies in.
    After the onload event is fired, for each flash movie the
    javascript function setCorrectSize4Flash will be called to resize
    the html container element (embed, object tag) automatically by the
    given width and height of the flash movie.
    Therefore i'm checking if the movie is completely loaded and
    if width and height is not undefined.
    So if i'm getting width and height, i'm resizing the
    container element to best fit in.
    My problem is now, that the same movie used several times in
    the same html page has every time different width and height
    values. Sometimes the aspect ratio is 1:2 and sometimes it's 2:1.
    Is this a problem of the flash player plugin or am i doing
    something wrong.
    Best regards,
    bartmark

    Thank you for your answer. But I don't understand:
    The question is not the margin. I put in the body margin: 0; padding:0; and there is no margin.
    I want to know the viewport:   the width and height with the iPad in horizontal position and without the address bar.
    This does not coincide with the 1024 x 768. (nor the 946 x 768 if I rest the address bar).  I don't understand why
    Thank you
    Narcís

  • Perspective 3D width and height (stage relative values) in Actionscript

    Hello!
    I have a small square movieclip in Stage, 100x100 width and height.
    I translated it 90º in Y axis. Then, it looks like almost a vertical line.
    I want to know the "Perspective 3D width" and "Perspective 3D height" values (something like 24x120 as the rotated square now looks like almost a vertical line).
    These values are shown in the movieclip properties, in "3D position and view".
    I put an image showing where the values appear. Does anyone know how I access the values via Actionscript?
    Thank you!

    Hello!
    Thanks for the feedback.
    After your answer, I searched for an hour to find the relation between matrix3D, transform, and the width and height properties. But I couldn't find the answer in there (I already had tried to search there before posting here).
    Maybe the answer can be there too, but "por casualidad" now I just found the solution using this piece of code:
    myMc.getBounds(root).height;
    myMc.getBounds(root).width;
    It solved the problem after 3 hours trying to find the solution! \o/
    Thanks for your attention!

  • Rotating and scaling a movieclip withing only its parent width and height

    Dear friends,
    I'd like to rotate a movieclip within specific area (its parent width and height) and it can't rotate out of it.
    How can I achieve that.
    When I say for exampe:
    mc.rotation = 10;
    it rotates also outside the parent area.
    How can I restrict it to only parent area.
    Thank you in advance.

    [OTTOMH]
    With each rotation step you could check the bounds of the rotating MC. If it's greater than the containing MC, you can calculate the scale factor and apply it to the x- and y-scale of the rotating clip.
    The clip would have to be deadcentre in the containing clip for this to work though.
    I suppose there would be some mathimatical way with most primitive shapes to calculate the width and height with a certain rotation, but I suppose this would be easiest.

  • Problem with Border Container width and height in %

    I want to use bordercontainer in Vgroup and specify its width and height in % form.
    But when we try to set width less than 18% or height less than 10% it takes the default values.
    Why is it so???
    Thanks in advance.
    Ronak Shah

    Probably a minWidth and minHeight set somewhere

  • Change the width and height of Landscape Layout for a report in 10G

    Hi,
    I'm new to reports and when i built the report in report builder 10g, the layout orientation was 'Landscape', hence I assumed that it'll be a landscape layout.
    However, the width and height fields of the main section are 11 and 20 respectively. However, the height should ideally be 8.5. When i try to change it I get the following error message :
    Layout canvas must remain large enough to fit layout objects.
    Could you please tell me how to change the height of this landscape layout to 8.5 from 20.
    The report has several main frames within a repeating frame, since the same report has to run multiple times.
    Is it possible to have a repeating page across pages (crossing the horizontal margin) and hence have some of the main frames move down to the next page. I'm trying to do this to then be able to reduce the height of the main section of the report to 8.5. Its not working though because I'm getting the following error :
    REP 1814 : Report cannot be formatted. Object "vertically" can never fit R_Main (the name of the repeating frame enclosing all objects)
    Thanks,
    Priyanka

    To reduce the Hieght, first make the layout design fit into the new value..

  • How to set a minimum width and height for a stage or scene?

    Hello,
    Does anyone how to set a minimum width and height for a stage or scene?
    I tried listening for width/height property value changes and then adjust the width/height if necessary, but that causes unpleasant flickering of the window.
    In JavaFX 2.1 beta SDK for Mac OS, the Stage class has setMinWidth() and setMinHeight() functions which work very well.
    I'm wondering what's the equivalent way to do that when using the FX SDK for Windows.
    Any help is appreciated!
    Thanks.

    I was wondering how to enforce a minimum stage size with JavaFX 2.0.3.The same flickering way you are currently doing it. See: http://javafx-jira.kenai.com/browse/RT-15200 "Need a way to set the minimum size of a window"

  • [JS] Page item (rectangle frame) width and height

    Following is my attempt at writing a function for width and height. It appears to work on rotated and sheared objects. Can anyone tell me if I'm on the right track?
    >function WidthAndHeight(myRectangle) // Returns an array [width,height]
    ]var myRectangleTopLeft = myRectangle.resolve(AnchorPoint.topLeftAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    var myRectangleTopRight = myRectangle.resolve(AnchorPoint.topRightAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    var myRectangleBottomLeft = myRectangle.resolve(AnchorPoint.bottomLeftAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    ]var d1x = (myRectangleTopRight[0][0] - myRectangleTopLeft[0][0]);
    var d1y = (myRectangleTopRight[0][1] - myRectangleTopLeft[0][1]);
    var myWidth = hypotenuse(d1x,d1y);
    var d2x = (myRectangleTopLeft[0][0] - myRectangleBottomLeft[0][0]);
    var d2y = (myRectangleTopLeft[0][1] - myRectangleBottomLeft[0][1]);
    var myHeight = hypotenuse(d2x,d2y);
    ]return [myWidth,myHeight];
    ]function hypotenuse(d1,d2)
    ]]return Math.sqrt ( Math.pow(d1,2) + Math.pow(d2,2) );

    Dave, you are absolutely right (no surprise here) about always returning points. I'm not sure, but I think this may actually be an InDesign bug. At the end of the 'resolve' method the 'true' value is meant to indicate 'use ruler units', I believe. Having read the documentation, however, it does seem like certain transformation coordinate spaces functions only work in points.
    To make this a more complete function, I've updated it to include a conversion to the current ruler units. I'm using the UnitValue object, and perhaps I'm misunderstanding something, but I cannot easily convert to a new UnitValue using the ruler measurements enumerations (it requires a string value to represent the target units). So I've had to include a switch function to get from the enumeration to the string value. Also, the UnitValue object does not seem to work with agates, and I haven't gone so far as to write my own conversion function for that, so the function has to exit with an alert if the user has agates as their ruler units.
    If anyone can offer a more elegant way of dealing with this, it would be great. Or even better, some insight into why the resolve method does not seem to honour the ruler units. This _is_ getting a bit over-the-top for a simple width and height function. Maybe Adobe will consider just adding the property to the page item and putting us all (well, certainly me, anyway) out of our misery (I've put in a feature request).
    > function WidthAndHeight(myRectangle) // Returns an array [width,height]
    ]] var myRectangleTopLeft = myRectangle.resolve(AnchorPoint.topLeftAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    var myRectangleTopRight = myRectangle.resolve(AnchorPoint.topRightAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    var myRectangleBottomLeft = myRectangle.resolve(AnchorPoint.bottomLeftAnchor, CoordinateSpaces.pasteboardCoordinates, true);
    ]] var d1x = (myRectangleTopRight[0][0] - myRectangleTopLeft[0][0]);
    var d1y = (myRectangleTopRight[0][1] - myRectangleTopLeft[0][1]);
    var myWidth = hypotenuse(d1x,d1y);
    var d2x = (myRectangleTopLeft[0][0] - myRectangleBottomLeft[0][0]);
    var d2y = (myRectangleTopLeft[0][1] - myRectangleBottomLeft[0][1]);
    var myHeight = hypotenuse(d2x,d2y);
    ]] var myHorizontalUnits = unitsEnumToString(app.documents[0].viewPreferences.horizontalMeasurementUnits);
    var myVerticalUnits = unitsEnumToString(app.documents[0].viewPreferences.verticalMeasurementUnits);
    ]] myWidth = new UnitValue(myWidth,"points");
    myHeight = new UnitValue(myHeight,"points");
    ]] myWidth = myWidth.as(myHorizontalUnits);
    myHeight = myHeight.as(myVerticalUnits);
    ]] return [myWidth,myHeight];
    ]] function hypotenuse(d1,d2)
    ]]]] return Math.sqrt ( Math.pow(d1,2) + Math.pow(d2,2) );
    ]] function unitsEnumToString(myUnitsEnum)
    ]]]] switch(myUnitsEnum)
    ]]]]]] case 2054188905 :
    ]]]]]]] return "points";
    ]]]]]] case 2054187363 :
    ]]]]]]] return "picas";
    ]]]]]] case 2053729891 :
    ]]]]]]] return "inches";
    ]]]]]] case 2053729892 :
    ]]]]]]] return "inches decimal";
    ]]]]]] case 2053991795 :
    ]]]]]]] return "millimeters";
    ]]]]]] case 2053336435 :
    ]]]]]]] return "centimeters";
    ]]]]]] case 2053335395 :
    ]]]]]]] return "ciceros";
    ]]]]]] default :
    ]]]]]]] alert("Cannot convert to the current ruler units. Sorry.");
    exit();

  • Flex 4 Premium reference to the Stage issue! width and height seem to be switched??

    So I am doing a very basic resize effect with a panel, but if I want it to fill the screen, I have to switch stage.stageWidth and stage.stageHeight. I have also traced them out and they come out as switched values. Anyone else having this issue?
    protected function panel1_addedToStageHandler(event:Event):void
          trace(stage.stageWidth, " " , stage.stageHeight);

    Hi,
    You maybe running into some sort of layout constraint also it depends on how you are initiating the animation, if you are doing it on startup you need to wait for creationComplete to ensure all your dimensions have been calculated for the browser. You shouldn't need to use stage dimensions either. The following code resizes a panel to fill the browser. (note using top/left/bottom/right is a lot smoother than width and height).
    David
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
       xmlns:s="library://ns.adobe.com/flex/spark"
       xmlns:mx="library://ns.adobe.com/flex/mx"
       creationComplete="application1_creationCompleteHandler(event)">
    <fx:Script>
    <![CDATA[
    import mx.events.FlexEvent;
    protected function application1_creationCompleteHandler(event:FlexEvent):void
    pw.valueFrom=pnl.width;
    ph.valueFrom=pnl.height;
    fillscreen.play();
    ]]>
    </fx:Script>
    <fx:Declarations>
    <s:Animate id="fillscreen" target="{pnl}" repeatCount="1" duration="1000">
    <s:SimpleMotionPath id="pw" property="width" valueTo="{width}"/>
    <s:SimpleMotionPath id="ph" property="height" valueTo="{height}"/>
    </s:Animate>
    </fx:Declarations>
    <s:Panel id="pnl" width="250" height="200" horizontalCenter="0" verticalCenter="0">
    </s:Panel>
    </s:Application>

  • How to set field width and height at runtime programatically?

    Hi all,
    I want to set the width and height of a report field by reading its values from the database table.
    Is it possible in Oracle reports?
    How to achieve this in Oracle reports 10g?
    Any help will be highly appreciated.
    Thanks .... Best Regards
    Bilal

    You cannot give it a specific value. During design you can set Horizontal and Vertical Elasticity properties to Variable, so the items are automatically scaled when running the report.

  • Fullscreen published in flash - htm 100%  width and height file is too big

    Hello everyone
    I need some help to create a fullcreen flash animation inside
    dreamweaver.
    What I did was to create a html file published in flash 100%
    width and height.
    It worked well on my explorer browser, but the size of the
    file is 995 k and this would be my index.
    When I publish on my provider the file doesn't open, probably
    is too big as an index, i don't know.
    Is there anyone there that could help me on that one?
    Thank you
    This is the code on Dreamweaver html
    <HTML>
    <HEAD>
    <meta http-equiv=Content-Type content="text/html;
    charset=ISO-8859-1">
    <TITLE>back_men</TITLE>
    </HEAD>
    <BODY bgcolor="#262626">
    <!-- URL's used in the movie-->
    <!-- text used in the movie-->
    11cf-96B8-444553540000"
    codebase="
    http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
    WIDTH="100%" HEIGHT="100%" id="back_men" ALIGN="">
    <PARAM NAME=movie
    VALUE="file:///C|/betoko_webfiles/flash_files/betoko/back_men.swf">
    <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor
    VALUE=#262626> <EMBED
    src="file:///C|/betoko_webfiles/flash_files/betoko/back_men.swf"
    quality=high bgcolor=#262626 WIDTH="100%" HEIGHT="100%"
    NAME="back_men" ALIGN=""
    TYPE="application/x-shockwave-flash" PLUGINSPAGE="
    http://www.macromedia.com/go/getflashplayer"></EMBED>
    </OBJECT>
    </BODY>
    </HTML>
    <script type="text/javascript"
    src="fixit.js"></script>

    Well, firstly you have > 60 minutes of video, therefore, you should not use the 60 minute preset. Since you have 80 minutes of video, you're probably better off using the 90 minute preset.
    Secondly, the presets assume that you are compressing your audio to AC3 with A.pack or Compressor 2 (depending on which version of DVDSP you're using). Uncompressed audio takes up lots of disc space and bandwidth.
    Thirdly, the difference between the measured size in the Finder and the size in DVDSP is the difference between true gigabytes (how the Finder measures things) and billions of bytes (how DVDSP measures things). When you Get Info in the Finder, look at the number following the file size in GB... it's a larger number that's so many billions of bytes. This larger number should agree with the number you see in DVDSP. See the DVD FAQ for a discussion of this issue.

  • SWFLoader.content: stage width and height, can i override to return proper results  ?

    Hiya.
    I'm loading with SWFLoader games that where written using stage functions to get the width and height of the stage and to draw the game and calculate game movements accordinly. When I load a game using SWFLoader, the stage size changes from the stage size of the flash application that i loaded with SWFLoader to the stage size of my entire flex application with breaks the loaded flash application.
    is there a way to override the stage related functions in the loaded flash application in order for them to return the proper value ?
    if my flash application is width=50px height=50px and it's located at my flex stage at x=20px width=20px,
    then the width and height of the stage of the flash application will return 70px.
    is there a way to resolve that ?

    If an app has dependencies on stage size, it will not behave well as a
    sub-app.

  • How to calculate actual selection or group width and height with clipping

    If a group has clipping paths then the height and visible bounds will include the dimensions of all paths selected including the clipped or hidden paths.
    However, the width and height shown on the width and height of the AI detail boxes for the selection shows just the visible dimensions.
    I want to retrieve the same values that is shown on the screen when a group is selected.
    It is somewhat counterintuitive that the "visiblebounds" property does not show just what is visible.
    I'm scaling the visible content of a selection to fit within another path but I need to be able to calculate the dimensions of the only what is visible after clipping.
    What do you have to do with scripting to get these values? Go through all of the path items in a group recursively and save the min and max values of any visiblebounds for clipping paths? Any better alternatives that I don't see?
    Thanks for any help!

    I ended up using the visible bounds for both scale and position as I also discovered that attempting to position a group with the position method would also result in missing the mark. The top and left (x,y) bounds I calculated without the clipped dimensions needed to be used to offset the actual position where I wanted the visible paths to be displayed.
    The functions I used ended up looking like so:
    function GetPoints(dblInch)
         var dpi = 72;
         return dblInch * dpi;
    function getRealVisibleBounds(grp) {
         var outerBounds = [];
         for(var i = grp.pageItems.length - 1; i >= 0;i--)  {
              var bounds = [];
              if(grp.pageItems[i].typename == 'GroupItem') {
                   bounds =  getRealVisibleBounds(grp.pageItems[i]);
              else if((grp.pageItems[i].typename == 'PathItem' || grp.pageItems[i].typename == 'CompoundPathItem')
                   && (grp.pageItems[i].clipping || !grp.clipped)) {
                   bounds = grp.pageItems[i].visibleBounds;
              if (bounds.length > 0) {
                   outerBounds = maxBounds(outerBounds,bounds);
         return (outerBounds.length == 0) ? null : outerBounds;
    function positionVisible(grp,x,y)
         var bounds = getRealVisibleBounds(grp);
         var newX = GetPoints(x) + (grp.left - bounds[0]);
         var newY = GetPoints(y) + (grp.top - bounds[1]);
         grp.position = [newX,newY];
    function maxBounds(ary1,ary2) {
         var res = [];
         if(ary1.length == 0)
              res = ary2;
         else if(ary2.length == 0)
              res = ary1;
         else {
              res[0] = Math.min(ary1[0],ary2[0]);
              res[1] = Math.max(ary1[1],ary2[1]);
              res[2] = Math.max(ary1[2],ary2[2]);
              res[3] = Math.min(ary1[3],ary2[3]);
         return res;
    and were called like so:
    var doc = app.activeDocument;
    if (doc.selection.length > 0) {
         var grpOriginal = null;
         if(doc.selection.length == 1 && doc.selection[0].typename == 'GroupItem') {
              grpOriginal = doc.selection[0];
         else {
              grpOriginal = doc.groupItems.add();
         doc.selection = null;
         if(grpOriginal.layer.name != 'approval') {
              grpOriginal.move(doc.layers['approval'],ElementPlacement.PLACEATEND);
         var artBounds = getRealVisibleBounds (grpOriginal);
         var artWidth = artBounds[2] - artBounds[0];
         var artHeight = artBounds[1] - artBounds[3];
         var imprintHeight = GetPoints(0.625);       // 0.625 is new height, hardcoded for demonstration
         var imprintRatio = imprintHeight / artHeight;
         var section = doc.layers['sectionLeft'];    // section where I placed the art
         var grpArt = grpOriginal.duplicate(section,ElementPlacement.PLACEATEND);
         grpArt.resize(100.0 * imprintRatio,100.0 * imprintRatio);
         grpArt.move(section,ElementPlacement.PLACEATBEGINNING);
         grpArt.selected = true;
         positionVisible(grpArt,0.0,16.75);          // x & y hardcoded for demonstration
    else {
         alert('artwork needs to be selected');
    I'm new at this so are there any better options to do these things?

  • Get width and height of a dynamically loaded image once it's done loading?!

    hello : :
    well... i'm taking my first shots at flex after programming
    in flash for a year now. it's been fun and i've been picking up on
    things pretty well (or so i think), but i come across something
    today that i used to be able to do in my as2 programming and don't
    know how to do in as3...
    in flex, i'm loading an image into an image control (by using
    "myImgControl.load(urlString)"). i have a "complete" parameter on
    the image control that calls a function just fine after the image
    is loaded, but if i try and check the hight and width of the loaded
    image once it loads, it comes back as zero. how can i get the
    height and width of the image after it's loaded?!
    in flash/as2 i used to do this little trick/work-around i
    found in a forum (kirupa.com, i think) to find out the width and
    height once the loaded image listener checked the loading process
    and came back "complete"... in the code below, "imgLoader" is the
    movieClip the image was loaded using
    imgLoaderListener.loadClip(urlString, imgLoader).
    quote:
    iTot = imgLoader.getBytesTotal();
    iLoad = imgLoader.getBytesLoaded();
    if (iLoad == iTot && iTot > 4) {
    imgH = imgLoader._height;
    imgW = imgLoader._width;
    that all make sense?!
    basically, it's as simple as this: i need to find something
    similar to the above for as3 that will tell me the width and height
    of a dynamically loaded image after it's done loading...
    so there ya have it. i appreciate any help any of you can
    throw my way! thank you so much for even reading this!
    : : michael

    I assume you have probably already figured this out, but just
    in case, there should be an event to listen for after which you can
    get the height and width information successfully. I can't remember
    the exact name, however. Experiment and see which one works
    time-wise.

Maybe you are looking for