PDA

Просмотр полной версии : Как сделать кнопку рестарта ролика?


Jumgar
24.05.2015, 22:12
Доброго времени суток.
Есть код, нужно сделать кнопку которая перезапустит ролик.
var n:int = Math.round(Math.random() * 100);
for (var i:int = 0; i < n; i++)
{
var line:Line = new Line ();
addChild (line);

line.y = Math.random() * 400;
line.x = Math.random() * 550;
line.rotation = Math.random() * 360;
}
Нужно для творческих целей, долго бился, но из за отсутствия нужных знаний желаемый результат так и не получил.

romanlysenko
25.05.2015, 14:12
1. Создайте кнопку, повесьте на неё слушатель события.
2. Создайте функции которая будет вызываться при нажатии на кнопку.
3. В функцию вставьте ваш код.

package {
import flash.display.Sprite;
import flash.display.SimpleButton;
import flash.events.MouseEvent;

public class Restart extends Sprite {
private var buttonRestart:SimpleButton;
private var buttonSprite:Sprite;

public function Restart() {
/* Создание кнопки */
createButton();

/* Вызываем функцию restartListener для перерисовки графических объектов */
buttonRestart.addEventListener(MouseEvent.CLICK, restartListener);
}

private function createButton():void {
buttonRestart = new SimpleButton();
buttonSprite = new Sprite();

buttonSprite.graphics.lineStyle(1, 0x555555);
buttonSprite.graphics.beginFill(0xff000,1);
buttonSprite.graphics.drawRect(0,0,200,30);
buttonSprite.graphics.endFill();

buttonRestart.overState = buttonRestart.downState = buttonRestart.upState = buttonRestart.hitTestState = buttonSprite;
addChild(buttonRestart);
}

private function restartListener(param:MouseEvent):void {
/* Очистка сцены от графических объектов */
graphics.clear();

/* Указывает стиль линии, который будет использоваться при последующих
вызовах таких методов Graphics, как lineTo() или drawCircle(). */
graphics.lineStyle(1, 0, 1);

var n:int = Math.round(Math.random() * 100);
for (var i:int = 0; i < n; i++) {
/* Рисует линию с использованием текущего стиля линии от текущего положения
инструмента рисования до точки с координатами (x, y); затем текущим
положением становится точка (x, y). */
graphics.lineTo(Math.random() * 550, Math.random() * 400);
}
}

}
}

Набросал на скорую руку, думаю смысл будет понятный.
Кнопка создана программно и не лучшим образом, по этому создайте свою через Flash IDE или же программно с помощью отдельно написанного класса.

Чтобы запустить данный пример, создайте класс Restart в него вставьте данный код и привяжите класс к файлу .fla на панели Properties в строке Class: Restart