Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 3 > Warning 1090


Автор: LordKmon 7.9.2009, 11:41
 Работаю в студии CS3,

просто код программы 

import flash.display.Sprite;
import flash.events.MouseEvent;


var _sprite:Sprite;
_sprite = new Sprite();
AddChild(_sprite);
....
....

_sprite.addEventListener(MouseEvent.Mouse_DOWN, onMouseDown);

function onMouseDown(event: MouseEvent): void
{ trace("bla bla bla");  }



вызывает ошибку  Warning: 1090: Migration issue: The onMouseDown event handler is not triggered automatically by Flash Player at run time in ActionScript 3.0.  You must first register this handler for the event using addEventListener ( 'mouseDown', callback_handler).


Однако стоит поменять, название функции с onMouseDown на onMDown и в функции тоже, как все норм работает?  Из за чего так ?

  У меня есть мнение, что из-за того ,что в студии CS3 ,  есть ActionScript 2 и ActionScript 3, и что  onMouseDown как раз свойство/событие из 2ого, типа старое обозначение  не читаемое в 3тьем.

Автор: LordKmon 9.9.2009, 20:29
 Другой вопрос, 

Спрайт обявленный в теле  локальной функции, не виден при запуске в соседней функции ? 
Как можно сделать спрайт глобальным ? 


 function ButtonClick(event:MouseEvent):void
{
    a=2;
    var s:Sprite;
    s = new Sprite();
    addChild(s);

    s.x=40;
    s.y=40;
    s.graphics.lineStyle(2, 0x000000, 100);
    s.graphics.moveTo(0, 0);
    s.graphics.lineTo(20, 0);
    s.rotation=-50;

}

Автор: nilrem 9.9.2009, 21:59
объявить локальную переменную в классе, например:
Код

public class Example extends MovieClip{
    public var sprite:Sprite;//та самая переменная
 
    public function Test():void{
        this.sprite = new Sprite();
    }

    public function Test2():void{
       trace(this.sprite);
    }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)