* РЕДАКТИРОВАТЬ - Я нахожу, что выдает ошибку, когда я пытаюсь изменить графические свойства фрагмента ролика. *
Я получаю этоошибка.«ReferenceError: Ошибка # 1069: элемент свойства не найден на flash.events.MouseEvent и значение по умолчанию отсутствует. PlayScreen / onClick ()».Я провел небольшое исследование, и большинство сайтов говорят, что это из-за опечатки.но насколько я могу судить, это выглядит хорошо?
У меня есть два события, которые изложены точно так же, как я могу сказать.Один запускается по щелчку, а другой - по нему.Событие hover работает нормально, но когда я использую событие onclick, я получаю сообщение об ошибке выше.Однако, несмотря на то, что я получаю сообщение об ошибке, функция по-прежнему работает как надо.
Вот мой код.код ниже создает новую сетку.Затем добавляются пользовательские события.событие hover работает без ошибок.событие onclick работает нормально, но я получаю сообщение об ошибке.
package {
import flash.events.MouseEvent;
import flash.display.MovieClip;
public class PlayScreen extends MovieClip {
public var grid:Grid;
public function PlayScreen() {
grid = new Grid();
grid.addEventListener( GridEvent.HOVER, onHover);
grid.addEventListener( GridEvent.TILECLICK, onClick);
grid.x = 0;
grid.y = 0;
addChild( grid );
}
public function onHover(event:*){
event.item.graphics.beginFill(0x66ff66);
event.item.graphics.lineStyle(2, 0x22ff22);
event.item.graphics.drawRect(-30*0.5, -30*0.5, 30, 30);
event.item.graphics.endFill();
}
public function onClick(event:*){
event.item.graphics.beginFill(0x000000);
event.item.graphics.lineStyle(2, 0x22ff22);
event.item.graphics.drawRect(-30*0.5, -30*0.5, 30, 30);
event.item.graphics.endFill();
}
Ниже приведен мой класс сетки.Он содержит мувиклип, к которому добавлены два события mouseEvents, которые затем запускают пользовательские события.
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Grid extends MovieClip {
public function Grid() {
var test = new MovieClip();
test.x = 0;
test.y = 0;
test.graphics.beginFill(0x66ff66);
test.graphics.drawRect(-tileWidth*0.5, -tileHeight*0.5, tileWidth, tileHeight);
test.graphics.endFill();
test.addEventListener(MouseEvent.MOUSE_OVER, overTile);
test.addEventListener(MouseEvent.MOUSE_DOWN, clickTile);
addChild(test);
}
function overTile (event:*) {
dispatchEvent( new GridEvent( GridEvent.HOVER, event.target) );
}
function clickTile(event:*) {
dispatchEvent( new GridEvent( GridEvent.TILECLICK, event.target) );
}
}
Ниже приведены мои пользовательские события
package
{
import flash.events.Event;
public class GridEvent extends Event
{
public static const HOVER :String = "hover";
public static const TILECLICK :String = "click";
public var item;
public function GridEvent (type:String, item)
{
this.item = item;
super(type);
}
}
}