2010-03-31 2 views

ответ

0

Похоже, вам нужно знать, как API-интерфейс чертежа работает во Flash. Ваш вопрос нечеткий, но это может помочь вам начать работу - Google API Flash Drawing API для получения дополнительной информации.

var point1:Point = new Point (0, 0); 
var point2:Point = new Point (25, -50); 
var point3:Point = new Point (50, 0); 

var s:Sprite = new Sprite(); 
s.graphics.lineStyle(1, 0xff0000); 
s.graphics.beginFill(0x000000); 

s.graphics.moveTo(point1.x, point1.y); 
s.graphics.lineTo(point2.x, point2.y); 
s.graphics.lineTo(point3.x, point3.y); 
s.graphics.lineTo(point1.x, point1.y); 

s.graphics.endFill(); 
s.graphics.lineStyle(0); 

s.x = (stage.stageWidth - s.width)/2; 
s.y = ((stage.stageHeight - s.height)/2) + 50; 

addChild(s); 

Надеюсь, что это поможет, сообщите мне, если у вас есть вопросы.

ПРИМЕЧАНИЕ. Это решение использует ActionScript 3. Если вам нужен AS2, это не сработает, и я не знаю, как помочь, но вы можете просто попробовать googling «AS2 Drawing API» или что-то на этот счет.

+0

Это довольно ясно из тега, что требуется AS2 ... –

1

Чтобы рисовать фигуры с помощью ActionScript 2, вы можете использовать MoveTo() и LineTo() методы объекта MovieClip. Вы можете указать цвет и толщину линии с помощью lineStyle() или сделать сплошную форму с помощью beginFill() и endFill().

Так нарисовать свой график и треугольник можно сделать следующие шаги:

  1. Сделать MovieClip с именем «графа»
  2. Определить, насколько велик ваш график должен быть (с помощью объекта flash.geom.Rectangle)
  3. Draw серый фон, используя graph.beginFill (серый), а затем MoveTo() и LineTo()
  4. Draw некоторые синие линии через регулярные промежутки времени для сетки
  5. ОБЕРНИТЕ осей х и у на стороне и нижний o е ваша сетка
  6. Сделать второй MovieClip с именем "форма"
  7. Pick 3 случайных точек: MoveTo (Point1), LineTo (point2), LineTo (point3), LineTo (point1)

Вот как код может выглядеть:

import flash.geom.Point; 
import flash.geom.Rectangle; 

function drawGraph(mc:MovieClip, rect:Rectangle):Void { 
//this is a function to draw the graph 

    //draw the background 
    mc.beginFill(0xF8F8F8); 
    mc.moveTo(rect.left, rect.bottom); 
    mc.lineTo(rect.left, rect.top); 
    mc.lineTo(rect.right, rect.top); 
    mc.lineTo(rect.right, rect.bottom); 
    mc.lineTo(rect.left, rect.bottom); 
    mc.endFill(); 

    //draw a grid 
    var unit:Number = 20; 
    mc.lineStyle(1, 0x0000FF, 20, true, "none", "round", "round"); 
    var i:Number=rect.x; 
    do { 
     i=i+unit; 
     mc.moveTo(i, rect.bottom); 
     mc.lineTo(i, rect.top); 
    } while (i<rect.right); 
    i=rect.bottom; 
    do { 
     i=i-unit; 
     mc.moveTo(rect.left, i); 
     mc.lineTo(rect.right,i); 
    } while (i>rect.top); 

    //draw the axes 
    mc.lineStyle(2, 0x808080, 100, true, "none", "round", "round"); 
    mc.moveTo(rect.left, rect.bottom); 
    mc.lineTo(rect.left, rect.top); 
    mc.moveTo(rect.left, rect.bottom); 
    mc.lineTo(rect.right, rect.bottom); 
} 

function randomPoint(rect:Rectangle):Point { 
//this is a function which returns a random point within rect 
    var p:Point = new Point(rect.x+Math.random()*rect.width, rect.y+Math.random()*rect.height); 
    return p; 
} 

function drawTriangle(mc:MovieClip, rect:Rectangle):Void { 
//this is a function to draw the triangle 

    // pick 3 random points within rect 
    var p1:Point = randomPoint(rect); 
    var p2:Point = randomPoint(rect); 
    var p3:Point = randomPoint(rect); 

    //connect the points to make a triangle 
    mc.lineStyle(3, 0xFF0000, 100, true, "none", "round", "round"); 
    mc.moveTo(p1.x, p1.y); 
    mc.lineTo(p2.x, p2.y); 
    mc.lineTo(p3.x, p3.y); 
    mc.lineTo(p1.x, p1.y); 

} 

//make the 'graph' clip: 
var myGraph:MovieClip = this.createEmptyMovieClip("myGraph", this.getNextHighestDepth()); 
//define the graph size: 
var myRect:Rectangle = new Rectangle(50,50,300,300); 
drawGraph(myGraph,myRect);//draw the graph 
var myShape:MovieClip = this.createEmptyMovieClip("myShape", this.getNextHighestDepth());//make the 'shape' clip 
drawTriangle(myShape,myRect);//draw a random triangle 

//add a function to draw a new triangle when the graph is clicked: 
myGraph.onRelease = function() { 
myShape.clear();//erase the old triangle 
drawTriangle(myShape,myRect);//draw a new one 
} 

Вы можете нажмите график, чтобы сгенерировать новый треугольник.

graph + triangle http://roi.webfactional.com/img/so/graph.jpg

Смежные вопросы