|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Объясните, пожалуйста, почему в коде не работает shiftKey, выдается ошибка?
Здравствуйте!
Объясните пожалуйста почему в этом коде не работает shiftKey, выдается ошибка "Access of possibly undefined property shiftKey through a reference with static type flash.events:Event", как это исправить? Спасибо. package { import flash.display.MovieClip; import flash.display.Sprite; import flash.display.BitmapData; import flash.display.Bitmap; import flash.events.Event; import flash.events.MouseEvent; public class Main extends MovieClip{ private var _mouseIsDown:Boolean; private var _erasing:Boolean; private var _canvas:Sprite; private var _w:Number; private var _h:Number; private var _bmd:BitmapData; private var _bm:Bitmap; private var _brush:Sprite; private var _eraser:Sprite; public function Main (){ _canvas = new Sprite(); addChild(_canvas); _w = stage.stageWidth; _h = stage.stageHeight; _bmd = new BitmapData(_w, _h, false, 0xFFFFFFFF); _bm = new Bitmap(_bmd); _canvas.addChild(_bm); _brush = createBrush(0x000099); _eraser = createBrush(0xFFFFFF); _canvas.addEventListener(MouseEvent.MOUSE_DOWN, onDown, false, 0, true); _canvas.addEventListener(MouseEvent.MOUSE_UP, onUp, false, 0, true); this.addEventListener(Event.ENTER_FRAME, onLoop, false, 0, true); } private function createBrush(col:uint):Sprite{ var sp:Sprite = new Sprite(); sp.graphics.beginFill(col,1); sp.graphics.drawCircle(0,0,20); sp.graphics.endFill(); return sp; } private function onDown(evt:Event):void{ _mouseIsDown = true; if(evt.shiftKey){ _erasing = true; } } private function onUp(evt:Event):void{ _mouseIsDown = false; _erasing = false; } private function onLoop(evt:Event):void{ if(_mouseIsDown && _erasing){ _eraser.x = mouseX; _eraser.y = mouseY; _bmd.draw(_eraser, _eraser.transform.matrix); } else if(_mouseIsDown) { _brush.x = mouseX; _brush.y = mouseY; _bmd.draw(_brush, _brush.transform.matrix); } } } }
__________________
Да будет ФЛЭШ ! |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
|
|
|||||
а если разместить просто в первом кадре такой код :
var mouseIsDown:Boolean; var erasing:Boolean; var canvas:Sprite = new Sprite(); addChild(canvas); var w:Number = stage.stageWidth; var h:Number = stage.stageHeight; var bmd:BitmapData = new BitmapData(w, h, true, 0x000000); var bm:Bitmap = new Bitmap(bmd); canvas.addChild(bm); trace(canvas.width, canvas.height); var brush:Sprite = createBrush(0x000099); var eraser:Sprite = createBrush(0xFFFFFF); function createBrush(col:uint):Sprite { var sp:Sprite = new Sprite(); sp.graphics.beginFill(col, 1); sp.graphics.drawCircle(0, 0, 20); sp.graphics.endFill(); return sp; } canvas.addEventListener(MouseEvent.MOUSE_UP, onUp, false, 0, true); canvas.addEventListener(MouseEvent.MOUSE_DOWN, onDown, false, 0, true); canvas.addEventListener(Event.ENTER_FRAME, onLoop, false, 0, true); function onUp(evt:MouseEvent):void { mouseIsDown = false; erasing = false; } function onDown(evt:MouseEvent):void { mouseIsDown = true; if (evt.shiftKey) { erasing = true; } } function onLoop(evt:Event):void { if (mouseIsDown && erasing) { eraser.x = mouseX; eraser.y = mouseY; bmd.draw(eraser, eraser.transform.matrix); } else if (mouseIsDown) { brush.x = mouseX; brush.y = mouseY; trace(eraser.transform.matrix); bmd.draw(brush, brush.transform.matrix); } } Так как исправить то? Я так и не понял.
__________________
Да будет ФЛЭШ ! Последний раз редактировалось A.E.M.; 02.12.2010 в 10:54. |
|
|||||
Цитата:
|
|
|||||
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
Ага, вот так:
Причём во втором варианте ты и сам всё исправил... |
|
|||||
Спасибо!
__________________
Да будет ФЛЭШ ! |
Часовой пояс GMT +4, время: 20:21. |
|
« Предыдущая тема | Следующая тема » |
Теги |
shiftKey |
|
|