Fiecare dintre tehnologiile de creare a graficii vectoriale discutate până în prezent în acest capitol are un domeniu de aplicare limitat: eticheta
Exemplul 22.12. Canvas.as
// Compilatorul freelat distribuit mtasc se va insera automat
// apelați metoda principal () în fișierul SWF compilat. Dacă creați
1 Codul din Exemplul 22.13, care creează o diagrama plăcintă, folosește această interfață de desen aplicație, dar nu o voi descrie aici. Toate documentele necesare pot fi găsite pe site-ul Adobe.
22,6. Crearea graficii cu Flash
// metoda Canvas.main () din primul cadru al filmului.
// Acest constructor conține codul de inițiere pentru funcția noastră Canvas Flash_class Canvas ()
// Definiți comportamentul panzei atunci când modificați dimensiunea Stage.scaleMode = "noScale";
// import funcții de desen Flash API ExternalInterface.addCallback ( "beginFill", _root, _root.beginFill); ExternalInterface.addCallback ("beginGradientFill", _root,
_root.beginGradientFill); ExternalInterface.addCallback ("clar", _root, _root.clear); ExternalInterface.addCallback ("curveTo", _root, _root.curveTo); ExternalInterface.addCallback ("endFill", _root, _root.endFill); ExternalInterface.addCallback ("lineTo", _root, _root.lineTo); ExternalInterface.addCallback ("lineStyle", _root, _root.lineStyle); ExternalInterface.addCallback ("moveTo", _root, _root.moveTo);
// Și, de asemenea export addText funcția () prezentată mai jos ExternalInterface.addCallback ( "addText", null, addText);
funcția statică addText (text, x, y, w, h, adâncime, font, mărime)
// Creați un obiect TextField pentru a reda textul
// în coordonatele date
var tf = _root.createTextField ("tf", adâncime, x, y, w, h);
// Trimiteți textul de ieșire tf.text = text;
// Setați opțiunile pentru fonturi text var format = new TextFormat (); format.font = font;
format.size = dimensiune; tf.setTextFormat (format);
Codul programului pentru fișierul Canvas.as. reprezentat în Exemplul 22.12, trebuie compilat în fișierul Canvas.swf. Înainte de a putea fi utilizat în playerul Flash. O descriere detaliată a modului în care se face acest lucru este dincolo de tema ram_ ki acestei cărți, dar puteți utiliza versiunea comercială a Adobe Flash IDE sau compilator freeware Acti_ onScript. 1
Din păcate, Flash oferă doar o interfață de aplicație la nivel scăzut. În particular, curveTo () este singura funcție care trage curbe (mai precis, curbele Bézier din ordinea a doua). Toate cercurile, elipsele și curbele Be_
578 Capitolul 22. Lucrul cu grafica pe partea clientului
Exemplul 22.13 începe cu o funcție auxiliară care implementează fișierul Canvas.swf într-un document HTML_document. În diferite browsere, această operație este efectuată diferit, iar funcția insertCanvas () ascunde aceste diferențe. Este urmată de funcția wedge (), care utilizează interfața aplicației Flash pentru a desena un sector de diagrame. Apoi, funcția pieChart () numește funcția wedge () pentru a desena un sector separat. Exemplul se termină cu definiția procesatorului de evenimente onload, care introduce panza Flash_ în document și creează un desen pe acesta.
// încorporați Flash_Field de dimensiunea specificată ca un singur
// descendentul elementului de container specificat. Pentru portabilitate, funcția
// utilizează eticheta
funcția insertCanvas (containerid, canvasid, lățime, înălțime)
dacă (navigator.plugins navigator.mimeTypesnavigator.mimeTypes.length) "