Beginnend mit den Codes versehen in Flash CS3 Erstellen Sie eine Farbe und Durchführung kleinerer Änderungen, erheblich verbessern kann das Instrument der "löschen". Hinzufügen einer Form nicht sichtbar ist, können Sie es als einen "Plan" zu verwenden, um den Lauf draw() Mischmodus "löschen". Wie im Beispiel unten gezeigt, nach der Zeichnung etwas, halten Sie die Strg-Taste und die Wirkung der "Annullierung" ist jetzt in Echtzeit.
Der Code wird wie folgt - Quelle :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| . MouseEvent ; Import flash.events. MouseEvent ; . BitmapData ; Import flash.display. BitmapData ; . Bitmap ; Import flash.display. Bitmaps ; . GradientType ; . import flash.display GradientType ; / / . Matrix ; flash.geom Importe. Matrix ; / / Boolean = false ; md var: Boolean = false; / / Sprite = new Sprite ( ) ; var event_spr: Sprite = new Sprite (); event_spr ) ; addChild (event_spr); / / Number = event_spr . stage . stageWidth ; var area_width: Anzahl = event_spr Praktika stageWidth;.. Number = event_spr . stage . stageHeight - 32 ; var area_height: Anzahl .. = event_spr Praktika stageHeight - 32; / / String = GradientType . LINEAR ; fillType var: String = GradientType . LINEAR; : Array = [ 0xFF0000 , 0x00FF00 , 0x0000ff ] ; var Farben: Array = [0xFF0000, 0x00FF00, 0x0000FF]; : Array = [ 1 , 1 , 1 ] ; var alphas: Array = [1, 1, 1]; : Array = [ 0 , 128 , 255 ] ; var ratios: Array = [0, 128, 255]; String = SpreadMethod . PAD ; spreadMethod var: String = SpreadMethod PAD;. : Matrix = new Matrix ( ) ; var matrix: Matrix = new Matrix (); createGradientBox ( area_width , area_height , 1 , 0 , 0 ) ; . Matrix createGradientBox (area_width, area_height, 1, 0, 0); / / event_spr . graphics ) { mit (event_spr. Grafiken) { fillType , colors , alphas , ratios , matrix , spreadMethod ) ; beginGradientFill (fillType, Farben, Alphas, Verhältnisse, Matrix, spreadMethod); 0 , 0 , area_width , area_height ) ; drawRect (0, 0, area_width, area_height); ; endFill (); } / / Paint-Ereignis ( MouseEvent . MOUSE_DOWN , _onMouseDown ) ; . event_spr addEventListener ( MouseEvent MOUSE_DOWN, _onMouseDown.); ( MouseEvent . MOUSE_MOVE , _onMouseMove ) ; . event_spr addEventListener ( MouseEvent MOUSE_MOVE, _onMouseMove.); ( MouseEvent . MOUSE_UP , _onMouseUp ) ; . event_spr addEventListener ( MouseEvent MOUSE_UP, _onMouseUp.); ( MouseEvent . MOUSE_OUT , _onMouseUp ) ; . event_spr addEventListener ( MouseEvent MOUSE_OUT, _onMouseUp.); / / BitmapData = new BitmapData ( event_spr . width , event_spr . height , true , 0 ) ; var bmpd: BitmapData = new BitmapData (event_spr. Breite, Höhe event_spr, true, 0.); Bitmap = new Bitmap ( bmpd ) ; var bmp: Bitmap = new Bitmap (bmpd); bmp ) ; addChild (bmp); / / / / Temporäre Form Shape = new Shape ( ) ; var draw_shape: Form = new Form (); draw_shape ) ; addChild (draw_shape); / / / / Shape nicht sichtbar ist, verwendet für die "Stornierung" Shape = new Shape ( ) ; var erase_shape: Form = new Form (); / / e : MouseEvent ) : void { _onMouseDown Funktion (e: MouseEvent ): void { ) ; debug ("_onMouseDown"); . lineStyle ( 10 , 0xffffff , 1 ) ; .. draw_shape Grafiken lineStyle (10, 0xffffff, 1); . lineStyle ( 20 , 0xffffff , 1 ) ; .. erase_shape Grafiken lineStyle (20, 0xffffff, 1); . moveTo ( e . localX , e . localY ) ; .. draw_shape Grafiken moveTo (and. localX und localY.); . moveTo ( e . localX , e . localY ) ; .. erase_shape Grafiken moveTo (and. localX und localY.); md = true; } / / e : MouseEvent ) : void { _onMouseUp Funktion (e: MouseEvent ): void { md = false; . draw ( draw_shape ) ; .. bmp bitmapData draw (draw_shape); . clear ( ) ; . draw_shape Grafiken clear ().; . clear ( ) ; . erase_shape Grafiken clear ().; } / / e : MouseEvent ) : void { _onMouseMove Funktion (e: MouseEvent ): void { ) ; debug ("_onMouseMove"); md && ! e . ctrlKey ) { if (md & &! und. ctrlKey) { . lineTo ( e . localX , e . localY ) ; .. draw_shape Grafiken lineTo (and. localX und localY.); ( md && e . ctrlKey ) { } Else if (md & & und. CtrlKey) { . lineTo ( e . localX , e . localY ) ; .. erase_shape Grafiken lineTo (and. localX und localY.); . draw ( erase_shape , null , null , "erase" ) ; bmp bitmapData draw (erase_shape, null, null, "löschen")..; } } / / v : String ) : void { Funktion debug (v: String ): void { : Date = new Date ( ) ; var d: Date = new Date (); d . getMinutes ( ) + ":" + d . getSeconds ( ) + ":" + d . getMilliseconds ( ) + ": " + v ) ; trace (d. getMinutes () + "" + d. getSeconds () + "" + d. getMilliseconds () + "" + st); } |
): Wir haben eine neue Form, fügte erase_shape nicht sichtbar (es war nicht jedem durchgeführt addChild() ):
1 2 3
| ... / / Shape nicht sichtbar ist, verwendet für die "Stornierung" Shape = new Shape ( ) ; var erase_shape: Form = new Form (); |
Das Stück Code, das kümmert Zeichnung wurde für die Steuer-Taste eingeführt und, wenn diese Taste gedrückt, ist daran interessiert, genau die Form erase_shape und kopiert die Bitmap:
1 2 3
| .... . lineTo ( e . localX , e . localY ) ; .. erase_shape Grafiken lineTo (and. localX und localY.); . draw ( erase_shape , null , null , "erase" ) ; bmp bitmapData draw (erase_shape, null, null, "löschen")..; |
Fortsetzung ...
Wie in erläutert Flash Actionscript Contest: Lösch-Funktion kann man nicht "löschen" einen bestimmten Bereich eines Sprite, MovieClip oder Form, auf denen Linien oder Rechtecke gezeichnet mit den Grafik-Cursor wurden. Es gibt in der Tat, die einzige Methode clear() , hat jedoch keine Auswirkungen auf die gesamte Fläche des Objekts. Die Lösung für dieses Problem liegt in der Möglichkeit der Verwendung der Bitmap-und BitmapData-Objekte. Wie wir sehen werden wir direkt zugreifen und diese manipulieren Bitmap-Daten, um "Löschen" Schläge mit einem echten Instrument "Radiergummi".
Zwei unterschiedliche Methoden, um das "Tor" zu erzielen. per esempio. Die erste "draw" (Löschen) von Daten direkt in das BitmapData, mit der Methode fillRect() - können auch verwendet werden setPixel() zum Beispiel. Die zweite Methode, die ich bevorzuge, verwendet die Methoden von Fusionen (blendMode).
Zunächst einmal wollen wir sehen, welche Art von Organisation minimal ist notwendig, um eine einfache Flash-Painter zu erreichen. Das Schema unten dargestellten gilt sowohl für die Vorschläge der "Tor":

Ich habe drei Schichten: die erste, MovieClip oder Sprite, Hintergrund und die Arbeit der Event-Handler (MouseDown, MouseMove und MouseUp). Die zweite ist die Bitmap unsere Schichten, eine, die tatsächlich gezogen werden Grafiken angewendet werden und auf denen das "Tor". , ecc…). Der dritte und letzte Schicht, die Form, geht es um zwei Fragen: die erste ist, dass er direkt die Funktionen der Grafik-Cursor (wie vorgesehen ermöglicht lineStyle , drawRect() , etc ...). Es steigert auch die Leistung während des Tracking-Chart, wie unten im Detail erläutert.
Fortsetzung ...
Herumspielen mit der leistungsstärksten und vielseitigsten Objekt Matrix (Matrix), verbunden mit den Veränderungen, können Sie bizarre Dinge. Diese Tools werden verwendet, um spezielle Transformationen auf ein visuelles Objekt, wie ein Sprite anzuwenden. Sie können zum Beispiel, skalieren, drehen oder verdrehen (Skew) ein Sprite. e rotation ), per l'effetto Skew bisogna ricorrere direttamente alle matrici. Während die ersten beiden Funktionen (Skalierung und Rotation) Sprite-Objekte (nicht nur) zur Verfügung stellen direkt mit den Eigenschaften ( scaleX / scaleY und rotation ), sollte der Skew-Effekt direkt Appell an die Matrizen. Was ich möchte hier betonen, dass, wenn wir ein grafisches Objekt ändern alle seine internen Koordinaten verschoben werden:
Fortsetzung ...
Für einige Entwickler müssen nur wissen, dass es eine neue Version ihres bevorzugten Weiterbildung Paket zu laufen und kaufen Sie das Upgrade. Andere, völlig zu Recht, mehr Ruhe und Pflege einer "vorgeben", um die tatsächliche Verbesserung in der neuen Version kennen, bevor Sie Ihre Gewohnheiten zu ändern. Im Fall von Adobe Flash CS3 ist nicht viel zu erwarten, angesichts der vielen Veränderungen, die das Paket durchlaufen hat seit Macromedia durch Adobe übernommen wurde.
Hier ist also zu 10 einfache, aber wichtige Gründe, in meine persönliche Meinung, genug um Sie zu überzeugen, um ein Upgrade Adobe Flash CS3 . Ich werde zu konzentrieren, natürlich nur auf die Dinge, die mir auffiel, persönlich, das ist nicht als abschließende Aufzählung all der vielen Innovationen, die von der CS3-Suite eingeführt gedacht, um nur eine Fliege zu antizipieren einige Funktionen von CS3.
1. Installation
Die Installation ist nett und schnell, im Vergleich zu früheren Versionen. Es beinhaltet unter anderem, mit allen Adobe-Produkten (Dreamweaver CS3, Photoshop CS3 Extended, etc ...), die die Installation / Deinstallation macht, und aktualisieren zu einem wahren Vergnügen.
2. Abwärtskompatibilität
Ein Thema, oft übersehener, aber immer berücksichtigt in der Geschichte der Flash-genommen: Die Fähigkeit zu früheren Versionen des Produkts zu verwalten. In Flash CS3 hat alle Werkzeuge zur Manipulation ist es, die frühere Versionen unserer Filme zu migrieren. Wir finden diese Möglichkeit bei der Fehlersuche (Debugging einer separaten ActionScript 2.0 und ActionScript 3.0) ist in den Prozess der Fertigstellung des Films. Schreiben Sie jetzt Actionscript 3.0 Flash-Anwendungen könnte kontraproduktiv sein in bestimmten Zusammenhängen. Wenn Ihr Ziel-Site hat einen hohen Traffic können Sie feststellen, dass viele Anwender noch nicht die neuesten Versionen von Flash Player für Ihren Browser installiert und dann nicht sehen würde den Film. Jedoch, wie oben erwähnt, Flash CS3 können Sie Flash-Anwendungen mantendedo Abwärtskompatibilität zu entwickeln und damit ich nicht sehen dies als eine große ostocalo nell'upgrade Produkt.
3. GUI-und IDE-

Die IDE Flash CS3 (wie Dreamweaver CS3) wurde überarbeitet, um besser. Die Tafeln (siehe Bild links), oft unbequem in vorherigen Versionen wurden komplett überarbeitet und nun ihre Verwendung ist viel weniger invasiv.
Darüber hinaus ist die Möglichkeit, Platten zu minimieren (siehe Abbildung rechts) stellte fest, dass macht eine echte attraktive und funktionale Schnittstelle. Wenn eine Platte in Symbol-Modus nimmt viel weniger Platz und mit einem einfachen Klick öffnen Sie die erste Haupt-Panel immer sichtbar.
Alle IDE, kurz gesagt, ist auch der zentrale Bereich mit dem Fenster für die Bearbeitung und Grafik-Code wurde überarbeitet. Glauben Sie nicht darauf hin, alle Änderungen, oder du wirst die Überraschung ruinieren ...

Fortsetzung ...
Neueste Kommentare
Simon : Es ärgert gestört wieder ein und verwenden, die Platz für diese Dinge ... aber es funktioniert nicht ...
Giovambattista Fazioli : @ Simon: Was könnte darauf zurückzuführen sein, die Syntax, die ich verwendet, die speziell für PHP 5 +,...
Simon : Ich habe versucht gestern Abend, alles in functions.php, okay, jquery Formulare und Tabs jQueryUI ihnen ...
Giovambattista Fazioli : @ Simon: Ich empfehle Reinigung zu einem Code wie in ein ...
Simon : @ Giovambattista Fazioli: Vielen Dank für Ihre Geduld, es ist alles klar ... jetzt fühle ich mich jetzt ...