Hit detection

i have included my code below for bullets in my game. the
bullets are added to the stage when the mouse is clicked anywhere.
easy enough... now the question i have is at the bottom of my
shooter function. i am trying to detect when a bullet (boxr) hits
my target.
it could have something to do with the bullets being
generated inside that function and the target being just a movie
clip on the stage with the instance name "target". im not sure. any
help would be greatly appreciated.

awesome! i didn't realize you had to detect for a hit each
frame. i just thought it was triggered when the two movie clips
were on top of each other. thanks!

Similar Messages

  • Hit detection between a line and a UIView?

    Hi all,
    I'm trying to figure out if a UIView I've got on the screen is intersecting a line I'm drawing.
    Here's the code for drawRect:
    -(void)drawRect:(CGRect)rect
    // Get the current graphics context and clear it
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextClipToRect(ctx, CGRectMake(0, 0, 240, 320));
    CGContextClearRect(ctx, rect);
    // The line style
    CGContextSetLineWidth(ctx, 3.0);
    CGContextSetLineCap(ctx, kCGLineCapRound);
    CGContextSetRGBStrokeColor(ctx, 1.0, 1.0, 1.0, 1.0);
    // Create the line
    CGContextMoveToPoint(ctx, source.x, source.y);
    CGContextAddLineToPoint(ctx, dest.x, dest.y);
    // Draw the line
    CGContextDrawPath(ctx, kCGPathStroke);
    CGContextStrokePath(ctx);
    That draws a line from and to wherever I need it, but when I draw it over a UIView that's already on the screen, I need to know if the centre point of the UIView is on that line. So, if you have a line going from 0,0 to 10,10, you have points at 1,1 2,2 3,3 ... 10,10. If the centre point of the UIView is at, say, 3,3, it would be on that line.
    I've seen use of the CGContextPathContainsPoint method, but I can't get it working - my line doesn't draw. Here's the code for drawRect:
    -(void)drawRect:(CGRect)rect
    // Get the current graphics context and clear it
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextClipToRect(ctx, CGRectMake(0, 0, 240, 320));
    CGContextClearRect(ctx, rect);
    // The line style
    CGContextSetLineWidth(ctx, 3.0);
    CGContextSetLineCap(ctx, kCGLineCapRound);
    CGContextSetRGBStrokeColor(ctx, 1.0, 1.0, 1.0, 1.0);
    // Create the path
    CGMutablePathRef linePath = CGPathCreateMutable();
    // Move to the source point and add a line to the destination point
    CGPathMoveToPoint(linePath, NULL, source.x, source.y);
    CGPathAddLineToPoint(linePath, NULL, dest.x, dest.y);
    // Draw the line
    CGPathDrawingMode(kCGPathStroke);
    CGContextDrawPath(ctx, kCGPathStroke);
    CGContextStrokePath(ctx);
    // Save the graphics state before doing the hit detection
    CGContextSaveGState(ctx);
    CGPathRef path = linePath;
    CGContextAddPath(ctx, path);
    if(CGContextPathContainsPoint(ctx, baddie, kCGPathStroke)) {
    NSLog(@"Yes");
    CGContextRestoreGState(ctx);
    I'm clearly doing something wrong here, but I can't quite figure it out.
    Any help much appreciated!

    I'm tearing my hair out with this. This is simple maths!!! Every point I put into the formula works fine, but when it's in code it fails. I think it's something to do with the frame I'm using...
    This is set in the init method:
    CGRect frame = CGRectMake(40.0, 60.0, 240.0, 320.0);
    The source and destination of the line I'm drawing, and the point I want to check (myPoint) are passed in and set up as follows (in their respective setter methods):
    source = CGPointMake(pos.x - 40.0, pos.y - 60.0);
    dest = CGPointMake(pos.x - 40.0, pos.y - 60.0);
    myPoint = CGPointMake(pos.x - 40.0, pos.y - 60.0);
    They have 40 and 60 pixels removed as the co-ords I'm passing in are the location on the iPhone screen (320x480). I have to subtract those values to get the top-left corner of the frame I'm drawing into, i.e. 40, 60 on the screen is actually 0, 0 of the frame.
    Now I draw the line in the drawRect method:
    CGMutablePathRef linePath = CGPathCreateMutable();
    CGPathMoveToPoint(linePath, NULL, source.x, source.y);
    CGPathAddLineToPoint(linePath, NULL, dest.x, dest.y);
    And here's where I check whether the point has touched the line:
    float m = (source.y - dest.y) / (source.x - dest.x);
    float y = (m * (source.x - myPoint.x)) + myPoint.y;
    if((y >= source.y - 3) && (y <= source.y + 3) && (myPoint.x >= source.x) && (myPoint.x <= dest.x)) // ±3 pixels for tolerance
    NSLog(@"Point hit the line!");
    What am I doing wrong?!
    The whole premise of my game rests on this one simple little problem. I've spent two weeks writing the rest of it, and a week writing THIS one part! Grrr.
    Any help much appreciated. If I can't get this done within a week, pop along to London and see a grown man cry.

  • Hit Detection on array

    Hi i have a snake game, that after time loads sprites in an array to make the snake grow. Just wondering how i would go about adding a hit so when the head of the snake hits the body something happens. Below is the full document class code. Any pointers to what type of code would be massively helpful.
    <code>
    package {
    import flash.display.Sprite;
    import flash.events.KeyboardEvent;
    import flash.events.TimerEvent;
    import flash.ui.Keyboard;
    import flash.utils.Timer;
    import flash.display.MovieClip;
    import flash.utils.getTimer;
    import flash.text.TextField;
    import flash.events.Event;
    [SWF(width='430', height='430', frameRate='30')]
    public class Snake extends MovieClip{
    private const SPEED :uint = 25;//lower = faster
    private const snakeAttach :uint = 400;//lower = faster
    private const count:         uint = 10;
    private const DIM :int = 50; //keep this number uneven to have the snake starting in the middle
    private const INITIAL_SIZE :int = 3; //keep this lower then DIM/2
    private var stopped :Boolean;
    private var left :Boolean;
    private var right :Boolean;
    private var up :Boolean;
    private var down :Boolean;
    private var size :Number;
    private var food :Sprite;
    private var tmr :Timer;
    private var count1          :Timer;
    private var addSnake :Timer;
    private var curI :Number;
    private var curJ :Number;
    private var snake :Array;
    private var grid :Array;
    private var sp               :Sprite;
    private var _start:uint;
    public var myTextBox:TextField = new TextField();
    public function Snake(){
    addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
    private function onAddedToStage(event:Event):void {
    removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
    stage.addEventListener(KeyboardEvent.KEY_DOWN,changeDir);
    size = stage.stageWidth / DIM; //change grid size
    curI = curJ = Math.floor(DIM * 0.5); //change grid size
    initSnake();
    fillGrid();
    addTimer();
    addChild(myTextBox);
    count1 = new Timer(count);
    count1.addEventListener(TimerEvent.TIMER,stopWatch);
    count1.start();
    addSnake = new Timer(snakeAttach);
    addSnake.addEventListener(TimerEvent.TIMER,placeFood);
    addSnake.start();
    tmr = new Timer(SPEED);
    tmr.addEventListener(TimerEvent.TIMER,move);
    tmr.start();
    private function stopWatch(event:TimerEvent):void{
    myTextBox.text = (count1.currentCount / 100).toString();
    public function addTimer():void{ //timer
    var myTextBox:TextField = new TextField();
    addChild(myTextBox);
    private function fillGrid():void{  //grid
    grid = Make2DArray();
    for (var i:uint = 0; i < DIM; i++){
    for (var j:uint = 0; j < DIM; j++){
    var sp:Sprite = new Sprite();
    sp.graphics.beginFill(0xD7E0FC);
    sp.graphics.lineStyle(1,0xF5F5F5);
    sp.graphics.drawRect(0, 0, size  - 1, size - 1);
    sp.x = i * size;
    sp.y = j * size;
    addChild(sp);
    grid[i][j] = sp;
    private function Make2DArray():Array{   //for the grid
    var a:Array = new Array(DIM);
    for(var i:uint = 0; i < a.length; i++){
        a[i] = new Array(DIM);
    return a;
    private function initSnake():void{ //initialises the snake
    var center:Number = Math.floor(DIM * 0.5) * size;
    snake = new Array(INITIAL_SIZE);
    for (var i:uint = 0; i < INITIAL_SIZE; i++){
    var sp:Sprite = makeItem();      //adds a body part of makeItem
    sp.x = center;
    sp.y = center + i * size;
    addChild(sp); //adds to the stage
    snake[i] = sp;  //sets the index to one
    snake.reverse();
    private function makeItem(c:uint = 0):Sprite{  //graphics for item
    var s:Sprite = new Sprite();
    s.graphics.beginFill(c);
    s.graphics.lineStyle(2,0x3800E0);
    s.graphics.drawRect(0, 0, size, size);
    return s;
    private function placeFood(event:TimerEvent):void{  
    var rndI:uint = Math.floor(Math.random() * DIM);  //sets a random integer based on the the floor
    var rndJ:uint = Math.floor(Math.random() * DIM);
    var rndX:Number = grid[rndI][rndJ].x; // sets a grid position for the food item to go
    var rndY:Number = grid[rndI][rndJ].y;
    if (food != null) removeChild(food);  //if there is food on the grid removes the food from the board
    food = makeItem(Math.random() * 0xFFFFFF);// random color
    food.x = rndX;
    food.y = rndY;
    addChild(food); //adds the food to the board
    for (var i:uint = 0; i < snake.length; i++){
    if (rndY == snake[i].y && rndX == snake[i].x){
    private function move(e:TimerEvent):void{
    if (left){
    curI -= 1;
    }else if (right){
    curI += 1;
    if (up){
    curJ -= 1;
    }else if (down){
    curJ += 1;
    if (left || right || up || down){
    var s:Sprite = makeItem();
    if (curI > DIM - 1) curI = 0;
    if (curJ > DIM - 1) curJ = 0;
    if (curI < 0) curI = DIM - 1;
    if (curJ < 0) curJ = DIM - 1;
    s.x = grid[curI][curJ].x;
    s.y = grid[curI][curJ].y;
    addChild(s);
    snake.push(s);
    if (Math.floor(s.x) == Math.floor(food.x) && Math.floor(s.y) == Math.floor(food.y) ){
    else if((tmr.currentCount % 3) > 0) { removeChild(snake[0]); snake.shift(); }
    private function changeDir(e:KeyboardEvent):void{
    if(e.keyCode == Keyboard.LEFT) {if (!right){left = true;  up = false; down = false; right = false;}}
    if(e.keyCode == Keyboard.UP) {if (!down) {left = false; up = true;  down = false; right = false;}}
    if(e.keyCode == Keyboard.RIGHT) {if (!left) {left = false; up = false; down = false; right = true;}}
    if(e.keyCode == Keyboard.DOWN) {if (!up) {left = false; up = false; down = true;  right = false;}}
    } </code>
    thanks

    ive added it to the move function and called it in but im getting this error :
                        TypeError: Error #2007: Parameter child must be non-null.
                         at flash.display::DisplayObjectContainer/removeChild()
                         at Snake/move()
                        at flash.utils::Timer/_timerDispatch()
                         at flash.utils::Timer/tick()
    Heres the code that ive changed -
    private function move(e:TimerEvent):void{
    if (left){
    curI -= 1;
    }else if (right){
    curI += 1;
    if (up){
    curJ -= 1;
    }else if (down){
    curJ += 1;
    if (left || right || up || down){
    var s:Sprite = makeItem();
    if (curI > DIM - 1) curI = 0;
    if (curJ > DIM - 1) curJ = 0;
    if (curI < 0) curI = DIM - 1;
    if (curJ < 0) curJ = DIM - 1;
    s.x = grid[curI][curJ].x;
    s.y = grid[curI][curJ].y;
    addChild(s);
    checkForHits();
    if (Math.floor(s.x) == Math.floor(food.x) && Math.floor(s.y) == Math.floor(food.y) ){
    else if((tmr.currentCount % 3) > 0) { removeChild(snake[0]); snake.shift(); }
    private function checkForHits():void {
    for(var i:int=1;i<snake.length;i++){
    if(snake[0].hitTestObject(snake[i])){
    trace("hit")

  • [AS3] Hit detection

    Hello, well I am trying make a game, simple game. It has a movie clip of a bullet, and a shape for a target.
    I am trying to make the bullet hit the target and cause it to register as a hit.
    I had a previous system with just 1 bullet without an array to make more of them, that worked.
    But, this is the error:
    TypeError: Error #1034: Type Coercion failed: cannot convert bullet$ to flash.display.MovieClip.
        at newball_fla::MainTimeline/hitTarget()
        at flash.utils::Timer/_timerDispatch()
        at flash.utils::Timer/tick()
    Here is the code:
    stage.addEventListener(KeyboardEvent.KEY_DOWN, right);
    stage.addEventListener(KeyboardEvent.KEY_DOWN, left);
    stage.addEventListener(KeyboardEvent.KEY_DOWN, space);
    var startbutton = new startButton();
    addChild(startbutton);
    startbutton.x = 400;
    startbutton.y = 350;
    startbutton.addEventListener(MouseEvent.MOUSE_DOWN, onClick);
    var targetTimer:Timer = new Timer(100);
    targetTimer.addEventListener(TimerEvent.TIMER, hitTarget);
    var player:Shape = new Shape();
    player.graphics.beginFill(0x0000FF);
    player.graphics.drawCircle(5, 5, 5);
    player.x = 100;
    player.y = 200;
    addChild(player);
    function onClick(event:MouseEvent):void {
    ball.x = 25;
    ball.y = 55;
    ball.visible = true;
    function right(bmove:KeyboardEvent):void{
    if (bmove.keyCode==Keyboard.RIGHT){
    player.x+= 10
    function left(bmove:KeyboardEvent):void{
        if (bmove.keyCode==Keyboard.LEFT) {
            player.x-= 10
    function space(bmove:KeyboardEvent):void{
    if (bmove.keyCode==Keyboard.SPACE){
    var Bullet:bullet = new bullet();
    targetTimer.start()
    Bullet.x = player.x
    Bullet.y = player.y
    addChild(Bullet);
    Bullet.addEventListener(Event.ENTER_FRAME, moveBullet);
    function moveBullet(e:Event):void{
        e.target.y -=5;
        if(e.target.y <= -10){
            e.target.removeEventListener(Event.ENTER_FRAME, moveBullet);
            removeChild(MovieClip(e.target));
    function hitTarget(event:TimerEvent) : void {
            if(MovieClip(bullet).hitTestObject(ball)) {
            ball.x = 600;
            ball.y = 600;
            ball.visible = false;
            if(MovieClip(bullet).hitTestObject(ball2)) {
            ball2.x = 600;
            ball2.y = 600;
            ball2.visible = false;
    Any help?

    There's a couple of things wrong with the code.  The error you are seeing is partly because you are trying to convert a class (bullet) into a movieclip... not the Bullet you created.  But in the function where you attempt to do that, you don't even have access to the bullets because they are scoped within the function where you create them.
    What you should do is to get rid of the Timer coding altogether and just use the moveBullet function to test for hits since it gets passed the bullet info in its event argument.  Change your moveBullet function to something like...
    function moveBullet(e:Event):void{
        e.target.y -=5;
        if(e.target.y <= -10){
            e.target.removeEventListener(Event.ENTER_FRAME, moveBullet);
            removeChild(MovieClip(e.target));
        } else {
            if(MovieClip(e.target).hitTestObject(ball)) {
               ball.x = 600;
               ball.y = 600;
               ball.visible = false;
           if(MovieClip(e.target).hitTestObject(ball2)) {
               ball2.x = 600;
               ball2.y = 600;
               ball2.visible = false;

  • Hit Detection on Scaled or Rotated Lines?

    Hi,
    I'm writing a java program in which I paint a number of line segments.
    I've added the ability to scale or rotate the scene. Now, if the scene
    is neither scaled or rotated, then detecting when the mouse pointer
    is over a particular line is not especially difficult. I just iterate through
    all the line objects and compare their coordinates with the mouse's
    coordinates.
    But I can't figure how to detect when the mouse is over a line when the
    scene has been scaled and/or rotated. I guess this problem requires
    a bit of maths - something I'm bit rusty at. Can someone help me?
    Thanks.

    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.util.Hashtable;
    import javax.swing.*;
    import javax.swing.event.*;
    public class TransformSelection extends JPanel implements ChangeListener {
        JSlider rotateSlider;
        JSlider scaleSlider;
        Polygon polygon;
        Line2D[] lines;
        int selectedIndex = -1;
        Color[] colors = {
            Color.red, Color.green.darker(), Color.blue, Color.magenta, Color.orange
        AffineTransform at = new AffineTransform();
        double theta = 0;
        double scale = 1.0;
        public void stateChanged(ChangeEvent e) {
            JSlider slider = (JSlider)e.getSource();
            int value = slider.getValue();
            double cx = getWidth()/2.0;
            double cy = getHeight()/2.0;
            if(slider == rotateSlider) {
                theta = Math.toRadians(value);
            if(slider == scaleSlider) {
                scale = value/100.0;
            at.setToTranslation((1.0-scale)*cx, (1.0-scale)*cy);
            at.scale(scale, scale);
            at.rotate(theta, cx, cy);
            repaint();
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                RenderingHints.VALUE_ANTIALIAS_ON);
            g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL,
                                RenderingHints.VALUE_STROKE_PURE);
            if(lines == null) {
                initLines();
            AffineTransform orig = g2.getTransform();
            g2.setTransform(at);
            //g2.setPaint(Color.blue);
            //g2.draw(polygon);
            g2.setPaint(Color.red);
            for(int j = 0; j < lines.length; j++) {
                g2.setPaint(colors[j]);
                g2.draw(lines[j]);
                if(j == selectedIndex) {
                    g2.setPaint(Color.red);
                    double cx = (lines[j].getX1() + lines[j].getX2())/2;
                    double cy = (lines[j].getY1() + lines[j].getY2())/2;
                    g2.draw(new Ellipse2D.Double(cx-4, cy-4, 8, 8));
            g2.setTransform(orig);
        public void setSelectedIndex(int index) {
            selectedIndex = index;
            repaint();
        private void initLines() {
            int w = getWidth();
            int h = getHeight();
            double cx = w/2.0;
            double cy = h/2.0;
            int R = Math.min(w,h)/6;
            int sides = 5;
            int[][]xy = generateShapeArrays(w/2, h/2, R, sides);
            polygon = new Polygon(xy[0], xy[1], 5);
            lines = new Line2D[sides];
            double theta = -Math.PI/2;
            for(int j = 0; j < sides; j++) {
                double x1 = cx + (R/2)*Math.cos(theta);
                double y1 = cy + (R/2)*Math.sin(theta);
                double x2 = polygon.xpoints[j];
                double y2 = polygon.ypoints[j];
                lines[j] = new Line2D.Double(x1, y1, x2, y2);
                theta += 2*Math.PI/sides;
        private JPanel getControls() {
            rotateSlider = new JSlider(JSlider.HORIZONTAL, -180, 180, 0);
            rotateSlider.setMajorTickSpacing(30);
            rotateSlider.setMinorTickSpacing(10);
            rotateSlider.setPaintTicks(true);
            rotateSlider.setPaintLabels(true);
            rotateSlider.addChangeListener(this);
            scaleSlider = new JSlider(JSlider.HORIZONTAL, 50, 200, 100);
            scaleSlider.setMajorTickSpacing(50);
            scaleSlider.setMinorTickSpacing(10);
            scaleSlider.setPaintTicks(true);
            scaleSlider.setLabelTable(getLabelTable(50, 200, 50));
            scaleSlider.setPaintLabels(true);
            scaleSlider.addChangeListener(this);
            JPanel panel = new JPanel(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.weightx = 1.0;
            gbc.fill = gbc.HORIZONTAL;
            gbc.gridwidth = gbc.REMAINDER;
            panel.add(rotateSlider, gbc);
            panel.add(scaleSlider, gbc);
            return panel;
        private Hashtable getLabelTable(int min, int max, int inc) {
            Hashtable<Integer,JComponent> table = new Hashtable<Integer,JComponent>();
            for(int j = min; j <= max; j += inc) {
                String s = String.format("%d%%", j);
                table.put(new Integer(j), new JLabel(s));
            return table;
        private int[][] generateShapeArrays(int cx, int cy, int R, int sides) {
            int radInc = 0;
            if(sides % 2 == 0) {
                radInc = 1;
            int[] x = new int[sides];
            int[] y = new int[sides];
            for(int i = 0; i < sides; i++) {
                x[i] = cx + (int)(R * Math.sin(radInc*Math.PI/sides));
                y[i] = cy - (int)(R * Math.cos(radInc*Math.PI/sides));
                radInc += 2;
            // keep base of triangle level
            if(sides == 3) {
                y[2] = y[1];
            return new int[][] { x, y };
        public static void main(String[] args) {
            TransformSelection test = new TransformSelection();
            test.addMouseListener(new LineSelector(test));
            JFrame f = new JFrame("click on lines");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(test);
            f.getContentPane().add(test.getControls(), "Last");
            f.setSize(400,400);
            f.setLocation(200,200);
            f.setVisible(true);
    class LineSelector extends MouseAdapter {
        TransformSelection transformSelection;
        Rectangle net;
        int lastSelectedIndex;
        final int SIDE = 4;
        public LineSelector(TransformSelection ts) {
            transformSelection = ts;
            net = new Rectangle(SIDE, SIDE);
        public void mousePressed(MouseEvent e) {
            net.setLocation(e.getX() - SIDE/2, e.getY() - SIDE/2);
            AffineTransform at = transformSelection.at;
            Line2D[] lines = transformSelection.lines;
            for(int j = 0; j < lines.length; j++) {
                Shape xs = at.createTransformedShape(lines[j]);
                if(xs.intersects(net)) {
                    transformSelection.setSelectedIndex(j);
                    lastSelectedIndex = j;
                    break;
    }

  • Not detecting tv display when connected with Apple Mini-DVI to Video Adapte

    I am connecting my macbook to my older tv using a Apple Mini-DVI to Video Adapter to an RCA (yellow video prong) and then into the tv. The red and white audio prongs hang loose, not hooked into anything on both ends. When I go into Displays there is no option for mirroring displays. I hit 'detect displays' but nothing happens. The Apple Mini-DVI to Video Adapter is brand new, just ordered it from apple. And I use the RCA cord all the time with other machines into my tv and it works fine.
    Any help is really appreciated. Thanks!

    Which generation MacBook do you have because at some point Apple dropped support for that adapter. Here is a link to a list of Apple adapters and compatible computer models:
    http://support.apple.com/kb/HT3235

  • Imac 27" won't detect samsung syncmaster dvi

    A couple weeks ago I bought my first mac.  iMac 27" 2.7 GHz.  Before that I had a custom built pc with a Samsung Syncmaster T260HD hooked up through DVI.
    Today I mini-display to DVI adaptor in attempt to connect my samsung and use it as an external display.  It isn't working.  Everything is connected properly and the monitor is on and set to DVI.  I go to the system pref menu and hit detect displays and nothing happens.  One thing that I have noticed it that when I switch to DVI on the monitor it goes for a sec and then basically falls asleep.  It is still on but nothing goes up.
    My computer is also fully updated and I've tried restarting it.
    Please HELP!
    Thanks

    bump.
    Just bought a new adapter and it still doesn't work.

  • Can't detect some external displays with Macbook Pro 17"

    My macbook pro 17" connects just fine to my Apple Cinema display. But twice now I've tried to use it for presentations where I am connecting to either a video projector or a plasma screen through some sort of switchbox installed in the room. There's a VGA cable I'm supposed to connect to, and I use my DVI-VGA adaptor for that. But the macbook never recognizes the external monitor. In one case, everytime I hit "detect displays" i would see a brief bit of noise on the external screen like it was about to connect, but then nothing -- and Display Preferences showed no evidence of any connected external monitor. In both cases, I know the host systems generally handle Macs just fine. Is there something different about a Macbook Pro with dual-DVI? A design flaw or a mysterious switch that needs to be set right? Or maybe there's a glitch in my specific macbook??

    Have you tried resetting PRAM…
    http://docs.info.apple.com/article.html?artnum=2238
    … ?

  • My MacBook Air (OS 10.8.4) does not connect to projectors consistently using a VGA/Thunderbolt connetor. The Monitors/detect displays box that I am used to never appears. Intermittently the "arrangement" window appears in the Displays System Preferences

    My previous MacBook Air running an older operating system synced up just fine with these same projectors using the same minidisplay to vga adapter. My new computer has Airplay on it, and Airplay shows up on my menu bar on the new laptop where the displays icon used to appear. I cannot get the displays icon to display (even when I turn Airplay mirroring off). It used to show up on the menu bar and if I had projector issues I hit "detect displays" and it resolved. None of that appears to be available with the new operating system and Airplay on. I am not sure why.

    My previous MacBook Air running an older operating system synced up just fine with these same projectors using the same minidisplay to vga adapter. My new computer has Airplay on it, and Airplay shows up on my menu bar on the new laptop where the displays icon used to appear. I cannot get the displays icon to display (even when I turn Airplay mirroring off). It used to show up on the menu bar and if I had projector issues I hit "detect displays" and it resolved. None of that appears to be available with the new operating system and Airplay on. I am not sure why.

  • E520 - HDMI Output not working on Samsung TV - although works on other devices

    Laptop does not recognise TV
    I know there are a number of threads with similar questions, I have been through a number of them, however have not come across a solution that works.
    I have a ThinkPad E520 running Windows 8.1 Enterprise Edition x64
    The Laptop has two Graphics adapters
    Intel HD Graphics 3000 (Drive - 9.17.10.2867) - I have recently reverted back from the latest Intel driver to the latest Lenovo
    AMD Radeon 6600M and 6700M Series (Driver - 13.251.9001.1001) - latest on AMD website
    The TV is a Samsung 5 Series 5200 58 inch
    We use the TV at work for presentations and demo etc
    At my desk extend my desktop to a Philips monitor via HDMI and have no problems at all, I also using with HD TV at home, so HDMI port is ok.  Other laptops us the TV fine, so nothing wrong there either.
    Things I have tried
    The obvious 'Windows key + P' extended, duplicated, restarted and tried again
    Did the same as above using screen resolution page - TV is not detected, tried hitting detect - nothing
    Disabling AMD adapter
    Uninstalling Intel HD and reinstalling latest INTEL drivers with HDMI output plugged in
    Uninstalling Intel HD and reinstalling latest LENOVO drivers with HDMI output plugged in (as suggested in other posts)
    Tried different HDMI cables, using HDMI input 1 and 2 in the TV
    Initially you may think its the TV, however we have a number of Lenovo E530's they all work, the problem only exists with the E520's with the switchable graphics.
    Any help would be greatly appreciated.
    Dave

    Hi- its working now.  The problem is that all your contacts needs to update Skype and have the latest version and then bingo - it works.  Its fab now.
    Problem solved and set for Christmas call around.
    Merry Christmas everyone

  • Weekly build notes listings

    Since there are major changes going on in the TLF weekly builds, and the ASDocs aren't up to date, and the changes made are not searchable, I thought people might want the list dumped on here so changes to particular classes would show up in a forum search.  To see the changes made in Build 360, check out the TLF Blog post on it ( http://blogs.adobe.com/tlf/2009/02/tlf_api_changes_in_build_370_1.html ).
    Here's the list.  Maybe this could become a common practice.
    Build 432, Fri May 15 2009
    Changes in build 437 (2009/05/22)
        * remove flashx.textLayout.edit.UndoManager and flashx.textLayout.IUndoManager
        * Fix 2330964 BackgroundColor Placed incorrectly from TextLineFactory. Actually was in 436.
        * Fix 2326588 TextContainerManager Does Not Support Background Color
        * Fix 2330946 Remove TextContainerManager.trunctationOptions property
        * Fix 2337918 Please expose the scrollToPosition() API in TextContainerManager
        * Fix 2336672 Preserve selection when switching editingMode in TextContainerManager
        * Setting editingMode to the current editingMode should do nothing in TextContainerManager
    Changes in build 436 (2009/05/22)
        * Fix 2331711 TextContainerManager now sends a DamageEvent from setText().
        * Fix 2326543 bug where selection wasn't being extended on mouse drag.
        * add [RichTextContent] metadata to SpanElement and FlowGroupElement mxmlChildren properties
        * Fix 2337740 Flex bug SDK-20964 TCM rcycling bug
        * Partial fix 2330964 background color placed incorrectly from TextLineFactory
        * Remove vestigal experiment with Tables code
        * Fix 2321538. On the Mac, the keyboard shortcuts for cmd-A,C,V,X were not working.
        * Fix 2326543, "drag select of scrolling flows doesn't expand selection".
        * Fix 2329527. Content bounds being reported was slightly different between the factory and TextFlow composer.
        * Fix 2328695 TextContainerManager Stops Receiving FocusIn Events. This is a complete fix - previously this bug was worked around
        * Added TextLineFactoryBase.isTruncated
        * Fix 2315119 - Graphic will be redrawn when link applied.
    Changes in build 434 (2009/05/22)
        * Fix 2323921: RichText truncation doesn't work in all cases
    Build 432, Fri May 15 2009
    Changes in build 432 (2009/05/14)
        * Fixed regression that broke truncation feature
        * Added TextLineFactoryBase.isTruncated
        * Changed text line factory behavior such that scrolling is turned off when truncation options are set
    Build 427, Fri May 8 2009
    Changes in build 427 (2009/05/07)
        * Fix bug - RTE in computeSelectinIndexInContainer
        * Namespace change -- mxml namespace for TLF was "library:adobe/flashx/textLayout". Now it is: library://ns.adobe.com/flashx/textLayout".
        * Fix bug - Scrolled TextContainerManager Can be Difficult To Create Point Selection
    Changes in build 426 (2009/05/06)
        * Fix bug - TextFlow double-deletes text when pressing the backspace or delete key
    Build 422, Fri May 1 2009
    Changes in build 422 (2009/04/30)
        * API Changes: TextContainerManager now has a getContentBounds function, in place of individual getters for contentLeft, contentTop, etc. ContainerController also now has a getContentBounds function, in place of individual getters. Added functions to TextContainerManager to support custom classes for ISelectionManager and IEditManager (see createSelectionManager and createEditManager).
        * API changes for TextContainerManager:
              o getInteractionManager renamed to beginInteraction(), and added a new function endInteraction() which clients should use after beginInteraction() to signal that they are done with selecting/editing. This tells the TextContainerManager that it can go back to factory mode, which is more efficient.
              o invalidateInteractionManager() removed and replaced with two new functions, invalidateSelectionFormats() which clients should called when SelectionFormats have changed, and invalidateUndoManager which clients should call to change the undo manager.
        * API Changes for InputManager
              o InputManager renamed as TextContainerManager
              o IInputManagerClient removed, now you can subclass InputManager and override its methods
        * API Changes:
              o InputManager
                    + damaged property renamed to isDamaged() function
                    + focusSelectionFormat renamed to focusedSelectionFormat
                    + container retyped to Sprite
                    + compositionWidth and compositionHeight removed as constructor parameters, now you need to set the properties on the InputManager you create
              o ContainerController
                    + container retyped to Sprite
              o ISelectionManager
                    + focusSelectionFormat renamed to focusedSelectionFormat
              o IConfiguration & Configuration
                    + focusSelectionFormat renamed to focusedSelectionFormat
        * API Changes:
              o ISelectionManager
                    + setSelection deselects if negative numbers are passed in.
                    + selectAll removed, you can call ISelection.setSelection() to get the same behavior, if you need to redraw the selection, call ISelectionManager.textFlow.flowComposer.updateAllControllers().
                    + flushPendingEvents moved to IInteractionHandler
                    + notifyInsertOrDelete moved to IInteractionHandler
              o IUndoManager
                    + clear renamed to clearAll().
                    + undoLastOperation renamed to undo()
                    + redoLastOperation renamed to redo()
        * API Change: SelectionEvent now contains a SelectionState, not an ElementRange; this is much cheaper for us to provide. ElementRange is now tlf_internal. ElementRange.firstLeafPosition renamed to absoluteStart, ElementRange.lastLeafPosition renamed to absoluteEnd.
        * API Change: TextScrap.copyTextScrap renamed to clone.
        * API Changes to InputManager. defaultInputManagerConfiguration renamed to defaultConfiguration. composeToController renamed to compose(), and updateToController renamed to updateContainer().
        * API Changes:
              o ISelectionManager:
                    + Event handling functions moved out of ISelectionManager into new interface, IInteractionHandler
                    + selectionFormat renamed to currentSelectionFormat
                    + selectionState renamed to function getSelectionState()
                    + setSelection now takes default parameters to select the entire flow
                    + noFocusSelectionFormat renamed to unfocusedSelectionFormat
              o SelectionFormat:
                    + blockAlpha reanmed to rangeAlpha
                    + blockBlendMode renamed to rangeBlendMode
                    + blockColor renamed to rangeColor
              o IEditManager:
                    + added get undoManager()
                    + added changeElementID()
                    + added changeElementStyleName()
              o SelectionManager:
                    + activeMark and anchorMark are now private
                    + selectionChanged is private
                    + setSelectionState is tlf_internal
              o EditManager:
                    + stage is private
                    + ChangeElementIdOperation renamed to ChangeElementIDOperation
    Changes in build 420 (2009/04/28)
        * API change: Removed the misleadingly named and superfluous TextFlowLine.textIndent. Documented and ensured consistent use of TextFlowLine.lineOffset as lhe line's offset in pixels from the appropriate container inset (as dictated by paragraph direction and container block progression), prior to alignment of lines in the paragraph.
        * API change: more changes to the factory classes. ITextLineCreator is now a property of the base class, so instead of passing it in the constructor you construct and then set the property in the factory. bounds property renamed to compositionBounds, and measuredBounds renamed to contentBounds. containerController property is now private.
        * API Change: moved ITextLineCreator interface from the elements package to the compose package.
        * PlainTextExporter is now public and has methods for controlling the paragraphSeparator and whether discretionary hyphens are included in the export. To use it, you can either construct it directly, or via the TextFilter class. Removed the newlineIndicator string from IConfiguration.
        * Fixed a bug where tabs in RTL text were being being offset by textIndent and marginRight values.
    Changes in build 419 (2009/04/24)
        * Once a mouseWheel event has been handled, mark with preventDefault so client applications don't also try to handle it.
        * Don't start compose if text is already composed. Optimization for callers of composeToPosition.
        * Always call resetContentTopLeft, to give more accurate top left positions, particularly for cases where the text is outdented and left aligned.
        * API CHANGE: TextLineFactory revised. It is now split into 3 classes, TextLineFactoryBase, StringTextLineFactory, and TextFlowTextLineFactory. Use StringTextLineFactory for creating TextLines from a String. Use TextFlowTextLineFactory for creating TextLines from a TextFlow. Static methods have been removed, so create a new factory in order to create lines. One factory may be reused many times, just resetting the values (text, bounds, truncation options, etc.) in between. See StaticHelloWorld.as for a simple example of how this works for Strings, see StaticTextFlow.as for a simple example of it with TextFlows.
    Build 418, Fri Apr 24 2009
    Changes in build 418 (2009/04/23)
        * API CHANGE: TextLineFactory revised. It is now split into 3 classes, TextLineFactoryBase, StringTextLineFactory, and TextFlowTextLineFactory. Use StringTextLineFactory for creating TextLines from a String. Use TextFlowTextLineFactory for creating TextLines from a TextFlow. Static methods have been removed, so create a new factory in order to create lines. One factory may be reused many times, just resetting the values (text, bounds, truncation options, etc.) in between. See StaticHelloWorld.as for a simple example of how this works for Strings, see StaticTextFlow.as for a simple example of it with TextFlows.
    Changes in build 417 (2009/04/22)
        * Fixed Vertical Justification behavior; it now increases the spacing between consecutive lines proportionally rather than spacing lines uniformly.
        * API Changes: Renamed DisplayObjectContainerController to ContainerController, and removed IContainerController and IInternalContainerController. Wherever you used to use "IContainerController" or "DisplayObjectContainerController" now just use "ContainerController".
              o Moved some functions that were public into the tlf_internal namespace: effectivePaddingLeft, effectivePaddingTop, effectivePaddingRight, and effectivePaddingBottom.
              o ColumnState.createColumnState removed. A ColumnState constructor now takes all the relevant values, so whereever you used to do this:
                    + var columnState:ColumnState = ColumnState.createColumnState(...your values here...);
              o you can now do this:
                    + var columnState:ColumnState = new ColumnState();
              o ColumnState.getColumnAtIndex(index) has been renamed to getColumnAt(index). So, once you have the columnState, you do, for instance:
                    + var columnRect:Rectangle = getColumnAt(0);
        * Fixed bug where spaces at end of a line would "overflow" into neighboring columns. New code keeps drawing of cursor at the column boundary and limits block selection drawing to the same bounds.
        * Enhancement to cursor navigation for Right to Left text systems. Previous code moved cursor according to logical order vs. visual order. Result was that a right arrow key press in Arabic, Hebrew or other RTL languages meant that the cursor actually moved left. New code moves cursor according to the visual order of the text based on the direction of the entire text flow. Note that changing the direction on a paragraph will not alter the behavior of the cursor, nor will the presence of LTR text within a RTL text flow. This means that if a TextFlow is set to Right to Left and a given paragraph is entirely in English and the paragraph is set to be Left to Right, the cursor will seem to move in the wrong direction. TLF does not support customization of cursor movement based on the locale or direction of anything except the parent TextFlow.
        * Fixed a bug that caused undoing an ApplyFormatToElementOperation to have no effect.
        * API Changes:
              o DisplayObjectContainer event handling functions renamed:
                    + processMouseOverEvent -> mouseOverHandler
                    + processMouseOutEvent -> mouseOutHandler
                    + processMouseWheelEvent -> mouseWheelHandler
                    + processMouseDownEvent -> mouseDownHandler
                    + processMouseUpEvent -> mouseUpHandler
                    + processMouseMoveEvent -> mouseMoveHandler
                    + processMouseDoubleClickEvent -> mouseDoubleClickHandler
                    + processFocusInEvent -> focusInHandler
                    + processFocusOutEvent -> focusOutHandler
                    + processActivateEvent -> activateHandler
                    + processDeactivateEvent -> deactivateHandler
                    + processKeyDownEvent -> keyDownHandler
                    + processKeyUpEvent -> keyUpHandler
                    + processTextInputEvent -> textInputHandler
                    + processContextMenuSelectHandler -> menuSelectHandler
                    + eventHandler -> editHandler
              o ISelectManager & SelectionManager & EditManager renamings:
                    + eventHandler -> editHandler
        * API Changes: renamed IContainerController.scrollLines to getScrollDelta, renamed InputManager.scrollLines to getScrollDelta, and removed constants for default container width and height.
    Changes in build 412 (2009/04/10)
        * API CHANGE: DisplayObjectContainerController methods processCopyEvent, processCutEvent, processPasteEvent, processSelectAllEvent collapsed into a single processEvent that handles all these basic events. Added to ISelectionManager a new function, processEvent for handling these same events in the SelectionManager, and removed processSelectAll, which is no longer used. cutTextScrap and pasteTextScrap moved from ISelectionManager to IEditManager, since these are editing operations.
    Build 411, Fri Apr 10 2009
    Changes in build 411 (2009/04/09)
        * Fixed a bug where noFocus selection format was not being set on re-activation
        * API CHANGES. These functions in IFlowComposer were renamed:
              o updateContainer -> updateToController
              o updateAllContainers -> updateControllers
              o composeContainer -> composeToController
              o composePosition -> composeToPosition
        * API CHANGE: Changing name of TextFlow.hostTextLayoutFormat to hostFormat
    Changes in build 410 (2009/04/08)
        * Fix bug where leading info used for composing the next line was being saved prematurely, causing incorrect layout if the current line needed to be composed in multiple passes.
    Build 409, Tue Apr 7 2009
    Changes in build 409 (2009/04/07)
        * Fix bug where clicking on container when height or width NaN doesn't work. When measuring, transparent hit detect region wasn't being redrawn to correct size after composition.
        * API CHANGE: Plain-text import/export changes. Newline indicators exported based on setting in IConfiguration.newLineIndicator. On import, LF/CR/CR+LF are all recognized as new line indicators.
        * Compose to container size with scrolling on -- previously was composing to double composer size. This may flush out some invalid line bugs.
        * Fixed a bug with blockProgression="rl" and compositionWidth=NaN, lines were getting improperly clipped out so that no text appeared.
        * API CHANGE: Renaming functions in IFormatResolver. invalidateAllTargets is now invalidateAll, and invalidateTarget is now invalidate. resolveTextLayoutFormat is now resolveFormat.
        * API CHANGE: eventMirror on FlowLeafElement and SubParagraphGroupElement is now tlf_internal.
        * API CHANGE: Moving TextRange from the edit package to the elements package.
    Changes in build 406 (2009/04/02)
        * API CHANGE: Renaming DamageEvent.damageStart to damageAbsoluteStart.
        * API Change: IConfiguration.includePartialLine renamed to overflowPolicy. Defined new class OverflowPolicy that describes the different policies that can be used to control whether lines that fall at the end of the container are included in the container, or not.
    Changes in build 405 (2009/04/01)
        * API CHANGE: IFlowComposer.firstDamagePosition renamed to damageStartPosition.
        * API CHANGE: Rename GeometryUtil.getRangeBounds to GeometryUtil.getHighlightBounds.
        * API CHANGE: ParagraphElement.getText now takes an additional optional parameter that specifies the terminator for the paragraph. By default, this is the Unicode paragraph terminator character (\u2029), but you can make it whatever you want, including a simple newline by passing a String for the paragraphTerminator. This change is backwards compatible for current callers of getText().
        * Fix clipping problem when text is placed above the container (6 lines aligned verticalAlign = bottom in a space that fits 4 lines).
    Changes in build 404 (2009/03/31)
        * Updating typgraphic case --Markup and API Change-- Now uses a new class TLFTypographicCase, and has different options. Support for "title" and "caps" dropped. Use TLFTypographicCase with TLF in preference to flash.text.engine.TypographicCase. "smallCaps" renamed to "capsToSmallCaps". "capsAndSmallCaps" renamed to "lowercaseToSmallCaps". Also made AUTO the default setting for kerning, which matches FXG spec.
    Changes in build 403 (2009/03/30)
        * format Markup Changes:
              o <TextLayoutFormat> now <format>
              o When referring to a format id, don't use brackets. So this:
                <TextLayoutFormat id="english" locale="en" fontFamily="Minion Pro"/>
                <p marginBottom="15" ><span format="{english}">This text is supposed to be in Minion Pro via a named character attribute</span></p>
                Is now this:
                <format id="english" locale="en" fontFamily="Minion Pro"/>
                <p marginBottom="15" ><span format="english">This text is supposed to be in Minion Pro via a named character attribute</span></p>
        * API Changes:
              o Rename FlowElement.textLayoutFormat -> format
              o Rename FlowElement.computedTextLayoutFormat -> computedFormat
              o Rename IContainerController.textLayoutFormat -> format
              o Rename IContainerController.textLayoutFormat -> computedFormat
              o Rename DisplayObjectContainerController.textLayoutFormat -> format
              o Rename DisplayObjectContainerController.textLayoutFormat -> computedFormat
    Changes in build 402 (2009/03/27)
        * verticalAlign of "middle" or "bottom" will now align to the compositionHeight (or compositionWidth in vertical text) even if the height of the text exceeds the compositionHeight. This means that lines that don't fit may be get pushed above the box, or (for middle) pushed both above and below. It also means that all lines will forced to compose to the end, so it will be quite slow to use verticalAlign in large text flows. Made some corresponding fixes to scrolling to make it work with text off the start of the container. Added some new test cases to exercise this functionality in all the different alignment settings.
        * Scrolling fixes for next/previous line with arrow keys. Fix a bug where the arrow key would move to the end of the line if the line required composition (e.g., the line was not previously in view). Also fixed a bug when scrolling up by a line where it would scroll down instead.
        * doOperation used to return an SelectionState, but with the exception of two places that were using it internally, all external callers only checked to see if it was null or not. null was being used to indicate failure, or nothing changed, which means that the operation is not placed on the undo stack. Now it returns a Boolean, true for success, false for failure. There may be further changes in this area to make FlowOperations simpler.
    Changes in build 397 (2009/03/20)
        * Made DisplayObjectContainerController's and FlowElement's TextLayoutFormat properties read/write (used to be write-only).
        * Merge ContainerControllerBase class into DisplayObjectContainerController.
        * Mark TextFlow class as final
    Changes in build 396 (2009/03/19)
        * Fix RTE in StandardFlowComposer.releaseLines
        * Fix possible source of the RTE on null reference from findFirstAndLastVisibleLines in ContainerControllerBase.
    Changes in build 394 (2009/03/17)
        * Fix issue with changes made in StatusChangeEvent to embedded graphics by blocking recursive composition. Bug 2298043
        * Add IFlowComposer.composeInProcess property.
        * Fixed problem where first part of a link could not be replaced by a new link. New code allows partial replacement of a link element with a selection which starts at the first character.
        * Fixed a problem where the cursor was getting set to the I-beam, and wouldn't set back.
    Changes in build 393 (2009/03/16)
        * Fix a bug where keyboard navigation with linked containers was causing a scroll because it was trying to scroll to a position not in the container.
    Changes in build 392 (2009/03/13)
        * Removed optimization that was preventing scrolling in the logical width direction if scrolling in the logical vertical direction was turned off.
        * Removed the container-level mouseMove and rollOver handlers which were changing the link state. These are now part of the LinkElement, and added only when they are needed.
    Changes in build 390 (2009/03/11)
        * Fix for application of attributes to a point selection where only the last attribute would be applied. New code applies all attributes applied to the point.
        * IContainerController.contentWidth (or contentHeight in vertical text) is now based on the actual text width, not the unjustified text width. This fixes some problems where scrolling wasn't working correctly because the reported width of the text was greater than the compositionWidth, but lines were wrapped. It does mean that to get the unjustified width you will have to set the textAlign to something other than "justify", recompose, and then get the resulting width.
        * Fix for unintended scroll when at the end of a TextFlow.
        * Fix for RTE when dragging over text generated from a factory, or non-TLF TextLines.
        * Changes for alignment and measurement. You can now set NaN for compositionWidth or compositionHeight, and TLF will compose and use the generated contentWidth or contentHeight for alignment, scrolling, etc. The composer now generates a topLeft for the bounds, so you can make a full "content bounds" using contentLeft, contentTop, contentWidth, and contentHeight.Note that this is logical bounds and not inked bounds, so there are some circumstances where ink will not fit in the content bounds.Fixed bugs in how the factory was doing vertical alignment that caused it to be a few pixels off.Fixed some incosistencies between how the standard flow composer worked and how the factory's simple composer works -- composition results should now be more uniform. Added a new test program, MeasurementGrid, for testing all this. It's still a work in progress.
    Changes in build 388 (2009/03/09)
        * Fixed issue where applying link or TCY to the last span of a paragraph caused a dangling span to remain with the para terminator.
        * Fixed issue where text would go into a link when it was the last element in a paragraph. Newly typed text now goes into a new span when the selection marker is at the last index.
    Changes in build 386 (2009/03/06)
        * Fixed issue with placement of underline and strikethrough on inline images.
        * Fixed placement of underline and strikethrough on text which has a baseline shift applied to it.
    Changes in build 385 (2009/03/04)
        * Combined SWC 'textLayout.swc' now included in the libs directory of the build. This includes everything from textLayout_core, textLayout_edit, and textLayout_conversion.
        * Combined RSLs now included in the rsl directory of the build. Both an unsigned SWF and signed SWZ are created. These include everything from textLayout_core, textLayout_edit, and textLayout_conversion.
    Changes in build 382 (2009/03/02)
        * Fix issue with composing a TextFlow containing just an empty ParagraphElement.
        * TextLineFactory will generate lines that included InlineGraphics whose source is a "class" - normally an embedded graphic.
        * Expose eventMirrors - use FlowElement.getEventMirror function to access the eventMirror.
    Changes in build 381 (2009/02/27)
        * Fixed issue with graphic assigned to ILG getting the wrong sizing.
        * Factory instance functions renamed to textLinesFromString and textLinesFromTextFlow. Static functions renamin unchanged.
    Changes in build 380 (2009/02/26)
        * Made backgroundColor work with TextLineFactory. This required an API change - the callback to the factory now must take a DisplayObject as its parameter, since it won't always be passed TextLines. Also, the background shapes themselves no longer include leading, so they do not exactly coincide with the selection bounds. This was another change to support calculating the shapes during composition as opposed to afterward. Also added a snapshot test as part of FactoryImportTest that uses backgroundColor, in addition to updating the existing unit tests.
    Changes in build 379 (2009/02/25)
        * Fixed for multiple containers ( we were getting incorrect textLength in the containers), as well as a fix that forces scrollToPosition to compose if the text isn't composed yet.
        * Fix so that we scroll to the active position of the selection after we extend the selection with a keyboard event. Also fixed some of the TextRangeUtil functions used for nextLine, etc. to make sure text is composed through selection before processing that depends on composition results.
        * Plain text import now consistently converts \r to space; previously it was converting only the first one. Still not clear what correct behavior should be.
    Changes in build 377 (2009/02/23)
        * Fix bug with importing trailing empty div elements.
    Changes in build 374 (2009/02/18)
        * Added support for TextField-style leading. A new leading model value allows lineHeight to be interpreted as the distance of line's ascent from the previous line's descent. Further, lineHeight can be negative. which specifies the criteria for truncation, the string used to indicate truncation and the format for this string.
    Changes in build 372 (2009/02/16)
        * Added "enableAccessibility" property to IConfiguration, defaults to false. Allows clients to avoid paying price for TextAccImpl objects unless needed.
        * Added support for truncation for text composed using TextLineFactory. The TextLineFactory methods now take a truncation options parameter, which specifies the criteria for truncation, the string used to indicate truncation and the format for this string.
    Changes in build 371 (2009/02/13)
        * Fixed a number of bugs relating to scrolling by line.
        * Measurement changes. Changed the way contentHeight and contentWidth are calculated, now they reflect the size of the text, regardless of alignment. Eliminated unjustifiedContentHeight and unjustifiedContentWidth; use contentHeight and contentWidth instead.
        * Fix RTE in damage when we try to damage back one line, for textFlow that doesn't have any leaf nodes.
        * Changed InlineGraphicElement so that GraphicElements (and the TextBlocks they are part of) don't get released. Fixes RTE on null pointer in places where we access the GraphicElement.
        * Fix bug deleting all of the last Span of a paragraph, plus some of the following paragraph.
    Changes in build 370 (2009/02/12)
        * Removed textFlow property from CompositionCompletionEvent. Use event.target to get to the TextFlow.
    Changes in build 369 (2009/02/11)
        * Fix issues in usage of hostTextLayoutFormat
        * Fix FXG export to not export styles with value "inherit"
        * lineBreak property no longer inherits by default
    Changes in build 368 (2009/02/10)
        * Fix for RTE that happens after cancelling an operation (calling preventDefault on a FlowOperationEvent).
    Changes in build 367 (2009/02/09)
        * ported to Flex 4.0.0.4836. All SWCs now build with this SDK.
    Changes in build 366 (2009/02/06)
        * FlowGroupElement addChild, addChildAt and replaceChildren methods now automatically delete new elements from any existing parents. Previously the code would test for parent on new elements and throw.
        * mxmlChildren FlowElement property which is normally used for mxml compilation of TextFlow objects now always deletes existing children
        * Fix a memory leak issue with the TextLayoutFormat cache
        * Fix cascade bug with non-inheriting attributes getting inherited
    Changes in build 365 (2009/02/05)
        * Changed TextLayoutFormat.backgroundColor to allow setting value of "transparent" (now the default). Because of this new value for backgroundColor, backgroundAlpha now defaults to 1.
    Changes in build 364 (2009/02/04)
        * Performance improvement for handling of TextFlow.hostTextLayoutFormat. The code now assumes that once set by the client the supplied object won't be changed. This avoids a copy.
    Changes in build 363 (2009/02/03)
        * Performance work. Remove getCanonical from TextLayoutFormat.
        * Fix for RTE cancelling SplitParagraphOperation.
        * Fixing some float bugs.

    Try searching discussions--see: http://discussions.apple.com/thread.jspa?threadID=684662
    only caveat is link is dated-I googled for newer...
    MacBook Pro 17" Mac mini (Intel)   Mac OS X (10.4.8)  

  • "Mode not supported" when connecting MacBook Pro to HDTV

    When I connect my MacBook Pro to the SAMSUNG widescreen HDTV and hit "Detect Displays", it does detect it as VGA Display and it gives me a bunch of options for resolutions and refresh rates, but there was no "Options" tab where I could check or uncheck "Overscan" and even keeping the refresh rate at 60 Hz, and even trying mirrored and non-mirrored screens, nothing worked. It still said "Mode not supported". I used a dual-link DVI to YPbPr cable which I just bought and my friend can connect his MacBook Pro to his HDTV with the same cable, but it doesn't seem to work for me. What's wrong?

    Try using an app like to get the stranince resolution:
    SwitchResX – The Most Versatile Tool For Controlling Screen Resolutions On Your Mac
    Display Menu from Mac App Store
    The monitor specs
    Native resolution1440 x 900
    Resolution720p
    Supported DTV resolutions576i
    Supported computer resolutions640 x 480 (VGA)
    PC InterfaceVGA (HD-15)
    Video InterfaceComponent, composite, HDMI, S-Video, SCART
    From:
    http://www.cnet.com/products/samsung-le19r86wd-19-lcd-tv/specs/

  • How do you hook up a TV monitor to a second GFX card?

    hi - after i learned that the Nv7800GT GFX card I ordered with my G5 dual core doesn't output to S-Video, i ordered and installed a 6600 card (which allegedly does). However now that it is installed, i can't seem to get it to recognize the TV monitor i've hooked up using the apple DVI to S-Video adapter. the system profiler just tells me "no display connected" on both of its ports.
    Can someone please help me to set this up correctly? I want to use the 6600 to drive an external monitor or beamer.
    thx for any help in advance!
    fj

    Did you hit "Detect Displays" ?
    yes. i notice that in the sys prefs only my cinema display (the one connected to the 7800GT) is shown. in my experience of using "extended desktop" mode, i would see a second display listed, along with several resolution options.
    but in this case, i am not using a single gfx card with a second monitor hooked up. so why do i not "see" the second card in the control panel? (it shows up in the system profiler)

  • Second monitor decided to stop allowing its native resolution.

    My external monitor (17" TruTech LCD screen) has a native resolution is 1440x900. Since the first time I plugged it in (using the DVI to VGA adapter and an extension cord), my Mac has recognized the monitor's native resolution automatically and worked perfectly, for the most part.
    Earlier today, after my computer crashed and I had to force shut-down, the Mac can no longer find the monitor's native resolution, and doesn't have it listed in the Display Preferences.
    I have done all of the following, to no avail:
    -Several hard power cycles of both my Mac and the monitor, with different combinations of the monitor being plugged in and unplugged before/after/during booting.
    -Reset PRAM/NVRAM
    -Repaired Disk Permissions
    -Unplug/re-plug the monitor to the computer (hitting "Detect Displays" while unplugged and again once plugged in)
    -Toggle mirroring on/off
    I installed SwitchResX, and after some tinkering with it was able to get the proper resolution on my external monitor. The problem is that it's only a 10 day trial, and I don't want to pay for software to fix a problem that I shouldn't be having. I'd also rather not have more software running in the background than I need.
    Is this an OS X problem, a Mac hardware problem, a problem with the monitor, or bad cables? If it's either of the latter two, I'm willing to purchase new cables or a new monitor. If it's an OS X problem, what can I do to fix it?
    Any help is very much appreciated.

    You may be able to trash the windowserver.plist files, but I'm not so sure if that works under Snow Leopard the same way it used to under Tiger and Leopard.
    When you build a custom timing using SRX, it just becomes part of a standard plist file. In other words, it writes to standard OS X framework files. So it's not like it's running in the background. You can delete SRX from your computer and that timing you made will still be there.

  • Trying to do the Laptop to Laptop dual display!

    I just got a MacbookPro 17inch, and I also have my old PowerBookG4 17inch, I'm trying to use my old (now crappy) G4 as a dual monitor. I just spent a good wad of cash on a some cords. For the MacbookPro I got a mini display port (male) to a .DVI (female), and for the G4 I got a DVI (male) to DVI (male). This successfully hooked up the two!!!
    I went to my macbookpro and hit "detect displays", and nothing happens.
    Ofcourse when I hook either up to a projector or a PC monitor, I can use them as displays, but I cant get these two mac laptops to work together!!!
    Do I need to start my old G4 in target disk mode or something? I'm unaware of the solution...
    Someone please help me gain new knowledge!!!
    -eric

    can I revert back to a useable laptop?
    Yes. All solutions of this type run through the OS on the second computer. FireWire Target Disk mode just displays a floating FireWire logo on the other display and therefore can't be used for this purpose.
    (49643)

Maybe you are looking for

  • How do i find the IP address of my printer?

    I have an HP 7130 all-in-one printer connected to a windows computer that is connected to a wireless router and modem. im using my macbook, which is also wireless to the same modem, and i am trying to set up a printer which requires the IP address of

  • How do I transfer my data from my old LOST BlackBerry to my new one?

    Hi everyone, I hope someone could help me out... I recently lost my blackberry pearl 8100 after car accident ( & thankfully I backed up my data the week before); anyways now I wanted to know how I can transfer my data to my new blackberry curve? (wit

  • Import data to FDM fails for planning app

    Hi, I have a problem with importing data from oracle view using FDM script. I have to make 2 things: 1. Import data to HFM app (it works fine) 2. Import data to Planning First of all i have configured HFM integration and set up all necessary informat

  • Setting default send email address/account

    I have 2 pop email address' setup in my BB. How do I set which is used for outgoing email messages?

  • Script to Seperate a Text Paragraph in JavaScript Editor

    Hi I have some code that generates and email that looks like this if (getField("Action").value == "X"){ this.mailDoc({ cTo: getField("Auth_Manager").value, cCc: getField("Current_Manager").value, cSubject: "Approval Required - " + getField("Action").