Я продолжаю получать эту ошибку: ArgumentError: Ошибка # 1063: несоответствие счетчика аргументов для кода :: SimonPad(). Ожидаемый 2, получил 0. Я понятия не имею, что происходит, особенно с uint. Любые подсказки будут высоко оценены. Я показал два блока кода ниже. Они основаны на ActionScript 3.0 Когда я попытался запустить эти коды, я не получил ни одного на сцене. Предполагается, что в этих кодах будут отображаться четыре разных цветных прямоугольника, но он вообще не работает. Помоги пожалуйста.AS3 ArgumentError: Ошибка # 1063: Ожидаемое 2, получено 0
package code
{
import flash.display.MovieClip;
import flash.events.Event;
public class Main extends MovieClip
{
private var pads:Array = new Array();
public function Main()
{
var pad:SimonPad;
pad = new SimonPad(0xAA0000, 0xFF0000);
pad.x = 5;
pad.y = 5;
addChild(pad)
pads.push(pad)
pad = new SimonPad(0x0000AA, 0x6666FF);
pad.x = 205;
pad.y = 205;
addChild(pad)
pads.push(pad)
pad = new SimonPad(0xAAAA00, 0xFFFF00);
pad.x = 5;
pad.y = 205;
addChild(pad)
pads.push(pad)
pad = new SimonPad(0x00AA00, 0x00FF00);
pad.x = 205;
pad.y = 205;
addChild(pad)
pads.push(pad)
addEventListener(Event.ENTER_FRAME, theFrame);
}
private function theFrame(e:Event):void
{
for (var i:int = 0; i < pads.length; i++)
{
(pads[i] as SimonPad).update();
}
}
}
}
package code
{
import flash.display.Sprite;
import flash.display.Shape;
import flash.events.MouseEvent;
public class SimonPad extends Sprite
{
private var dark:Shape;
private var light:Shape;
public function SimonPad(darkColor:uint, lightColor:uint)
{
dark = new Shape();
dark.graphics.beginFill(darkColor, 1);
dark.graphics.drawRect(0,0,190,190);
dark.graphics.endFill();
addChild(dark);
light = new Shape();
light.graphics.beginFill(lightColor, 1);
light.graphics.drawRect(0,0,190,190);
light.graphics.endFill();
addChild(light);
light.alpha = 0;
mouseChildren = false;
addEventListener(MouseEvent.CLICK, downClicked);
}
private function downClicked (e:MouseEvent):void
{
flash();
}
public function flash():void
{
light.alpha = 2;
}
public function update():void
{
if (light.alpha > 0)
{
light.alpha *= 0.85;
if (light.alpha < 0.0125)
{
light.alpha = 0;
}
}
}
}
}
Ошибка говорит о том, что вы вызываете конструктор SimonPad без передачи в 2 требуемых цветовых аргументах. Однако этого не происходит. Это должно происходить где-то еще в вашем приложении. Если вы используете отладочный Flash Player, сообщение об ошибке будет содержать номера строк/фреймов, в которых возникает проблема. –
Возможно, вы создаете SimonPad «руками», помещая объект из библиотеки в сцену/рамку. Добавить значения по умолчанию для параметров конструктора: SimonPad (darkColor: uint = 0, lightColor: uint = 0) Значения трассировки от конструктора, чтобы найти все объекты-объекты. – Smolniy
Я отлаживал Flash Player, но нет сообщения об ошибке, которое будет содержать номера строк/фреймов. - Sunil – Jackal