Kategorie 'Flash'
Der Vollständigkeit halber in Bezug Painting Flash CS3: Matrix-Effekte mit Matrizen Ich möchte betonen, dass die Matrix nicht notwendig ist für das Verhalten in früheren Post angegeben. In der Tat sehen wir in dem folgenden Beispiel:
Der Code unterscheidet sich geringfügig von der vorherigen, ist wie folgt:
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
| / * ** ActionScript 2.0-Code * / . MouseEvent ; Import flash.events. MouseEvent ; . Matrix ; flash.geom Importe. Matrix ; / / Flag zur Erkennung der mousedown Boolean = false ; md var: Boolean = false; / / Create eine Tafel vor Sprite = new Sprite ( ) ; var lvg1: Sprite = new Sprite (); . lineStyle ( 0 , 0xffffff ) ; . lvg1 Grafiken lineStyle (0, 0xffffff).; . beginFill ( 0x666666 ) ; .. lvg1 Grafiken beginFill (0x666666); . drawRect ( 0 , 0 , 199 , 199 ) ; .. lvg1 Grafiken drawRect (0, 0, 199, 199); . endFill ( ) ; lvg1 Grafiken endFill ()..; lvg1 ) ; addChild (lvg1); = lvg1 . y = 30 ; lvg1 lvg1 x =. y = 30.; / / Erstellen Sie das Brett gekippt Sprite = new Sprite ( ) ; var lvg2: Sprite = new Sprite (); . lineStyle ( 0 , 0xffffff ) ; . lvg2 Grafiken lineStyle (0, 0xffffff).; . beginFill ( 0x666666 ) ; .. lvg2 Grafiken beginFill (0x666666); . drawRect ( 0 , 0 , 199 , 199 ) ; .. lvg2 Grafiken drawRect (0, 0, 199, 199); . endFill ( ) ; lvg2 Grafiken endFill ()..; = 400 ; lvg2 x = 400.; = lvg1 . y ; lvg2 y = y lvg1..; = 45 ; . lvg2 Rotation = 45; = lvg2 . scaleY = . 6 ; lvg2 scaleX = lvg2 scaleY =. 6..; lvg2 ) ; addChild (lvg2); / / / / Paint-Ereignis ( MouseEvent . MOUSE_DOWN , _onMouseDown ) ; . lvg1 addEventListener ( MouseEvent MOUSE_DOWN, _onMouseDown.); ( MouseEvent . MOUSE_MOVE , _onMouseMove ) ; . lvg1 addEventListener ( MouseEvent MOUSE_MOVE, _onMouseMove.); ( MouseEvent . MOUSE_UP , _onMouseUp ) ; . lvg1 addEventListener ( MouseEvent MOUSE_UP, _onMouseUp.); / / e : MouseEvent ) : void { _onMouseDown Funktion (e: MouseEvent ): void { "_onMouseDown" ) ; trace ("_onMouseDown"); : uint = 0xffffff ; var c: uint = 0xffffff; . graphics . lineStyle ( 10 , c , 1 ) ; ... und Ziel Grafiken lineStyle (10, c, 1); . lineStyle ( 10 , c , 1 ) ; .. lvg2 Grafiken lineStyle (10, c, 1); . graphics . moveTo ( e . localX , e . localY ) ; .. und Ziel Grafiken moveTo (and. localX und localY.).; . moveTo ( e . localX , e . localY ) ; .. lvg2 Grafiken moveTo (and. localX und localY.); md = true; } / / e : MouseEvent ) : void { md = false ; } _onMouseUp Funktion (e: MouseEvent ): void {md = false;} / / e : MouseEvent ) : void { _onMouseMove Funktion (e: MouseEvent ): void { "_onMouseMove" ) ; trace ("_onMouseMove"); md ) { if (md) { . graphics . lineTo ( e . localX , e . localY ) ; . und Ziel Grafiken lineTo (and. localX und localY.)..; . lineTo ( e . localX , e . localY ) ; .. lvg2 Grafiken lineTo (and. localX und localY.); } } |
In diesem Fall die Zeilen 22 bis 25 zeigen, dass auch mit einfachen Drehung und Verschiebung Effekt wird wiederholt.
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 ...
Einige zu Recht, über die Adobe AIR argumentieren, Adobe Integrated Runtime (ehemals Apollo) von Adobe angeboten. Was reden wir? Nachdem alle Luft ist noch eine Beta ( die neueste Version ist 12/12/2007 - Beta 3 ) und seinen Erfolg, wir werden sehen, ob mit oder nicht, hängt von vielen Faktoren ab.
Fortsetzung ...
Ich erkläre es jetzt: Sie gewinnen nicht alles! Abgesehen von Stolz - wenn überhaupt - auf das Problem gelöst zu haben.
QUEST - ANWENDUNG
Wie erstelle ich ein Tool zum Löschen, löschen, klar, ein "Teil" der Grafik-API mit Actionscript 3.0 entwickelt?
, espongono la proprietà graphics , un puntatore ad un altro oggetto che “serve” tutte le funzioni grafiche di disegno runtime. Mit Actionscript 3.0 Einige visuelle Objekte, wie MovieClip oder Shape , haben die Eigenschaft graphics , ein Zeiger auf ein anderes Objekt, "dient" alle Grafik-Design Runtime-Funktionen. Zum Beispiel können Sie bei der Entwicklung einer einfachen Zeichenprogramm. , in modo semplice e rapido. Dieses Objekt graphics zeichnen können, was Sie wollen, zum Beispiel, ein Objekt der Shape , einfach und schnell. Das Problem ist, dass einmal etwas gezeichnet ist, kann reinigen, alle nur ein einziges Teil.
Ziehen Sie eine Linie ist ganz einfach:
1 2 3 4 5 6
| Shape = new Shape ( ) ; var myShape: Form = new Form (); myShape ) ; addChild (myShape); / / . lineStyle ( 2 , 0xff0000 , 1 ) ; .. myShape Grafiken lineStyle (2, 0xFF0000, 1); . moveTo ( 0 , 0 ) ; .. myShape Grafiken moveTo (0, 0); . lineTo ( 100 , 100 ) ; .. myShape Grafiken lineTo (100, 100); |
Gezeichnet etwas, was Sie alles mit dem einfachen Aufruf können clean clear() :
1
| . clear ( ) ; . myShape Grafiken clear ().; |
Aber wenn ich auf "löschen" nur einen Punkt wollen? Oder Koordinaten 50,50 bis 100,100?
Suchen Sie im Internet fand ich einige Beispiele für "Design-Anwendungen" und in der Tat, bietet keine Unterstützung oder Werkzeug "Löschen".
Haben Sie eine Lösung?
Fortsetzung ...
Yahoo! hat gerade ASTRA , eine Suite von Komponenten für Adobe Flash und Flex . Ich muss sagen, dass, zumindest für die Komponenten für Flash, ich eine halbe Enttäuschung war (wenn nicht insgesamt). Am interessantesten ist vielleicht die TabBar ... der Rest lässt viel zu wünschen übrig. Sie sehen für einige Komponenten entwickelt, ihr Projekt - intern - und nun als Open-Produkt veröffentlicht! Vielleicht bei Yahoo!, sind wir schon auf die Politik ausgerichtet ... Microsoft sah, dass heute das Software-Unternehmen von Bill gegründet hat 44,6 Milliarden Dollar angeboten, um Yahoo! zu kaufen! 44,6 Mrd., habe ich nicht falsch!
Aber machen Sie einen Ausflug auf der Website , wo Sie einige nützliche Ressourcen finden können. Wir in der nahen Zukunft zu vertrauen.
Fortsetzung ...
. Auch in der "Uniform", wie mit den Ereignissen (siehe passiert die neue Event-Handling von Flash CS3 und Flash CS3: Das neue Event-Management ), einer der vielen neuen Funktionen in ActionScript 3.0 ist das Verschwinden all jener : Ad-hoc-Methoden, um die Schaffung von Sonderfaktoren, wie dedizierte createEmptyMovieClip() oder die berühmte attachMovie() . Mit Actionscript 3.0 der Betreiber new ausreicht, um alle Operationen Gebäude durchzuführen. Ein neuer MovieClip, zum Beispiel erstellt wird (Laufzeit) mit dem folgenden Code:
Aber lasst uns gehen! Wenn ich ein Symbol in der Bibliothek und wollen fügen Sie es als Runtime passiert, wenn attachMovie() weg ist? Die Lösung ist nicht sehr verschieden von dem, was passiert in Actionscript 2.0. Zuerst müssen Sie in die Bibliothek gehen, wählen Sie das Symbol und öffnen Sie das Eigenschaften-Fenster. An diesem Punkt, überprüfen Sie die Export für ActionScript box Verkettung - so wie sie in Flash 8 hat. Ein Symbol-Bibliothek als Basisklasse hat immer flash.display.MovieClip , aber das interessiert uns nicht viel. Das Interessante daran ist jedoch, den Parameter-Klasse, die standardmäßig eingestellt ist (wenn Sie Export für ActionScript) mit dem symbolischen Namen. Was ist wichtig zu betonen ist, dass dies eine neue Art von Flash CS3 (und ActionScript 3,0) ist. Das Symbol exportiert werden muss eine Klasse verweisen. Die Neugier ist, dass wir nicht unbedingt gezwungen, unsere eigene Klasse (extended aus erstellen flash.display.MovieClip ), auch wenn wir es tun konnte.
Fortsetzung ...
Ich bemerkte, oft Verwirrung, wenn es um Klassen, Objekte und Instanzen geht. Diejenigen, die nicht sehr gebildet auf der objektorientierten Programmierung verwechselt oft die wahre Bedeutung dieser Begriffe. Ich wusste jedoch, dass es zwei Denkschulen in Bezug auf die Definition von Klassen und Objekten. Ich mag die "Schule", dass die Klassen-Definition gibt als möglichen Gegenstand, und daher, wie eine Instanz des Objekts.
Es scheint trivial, aber ich habe - im Gespräch mit anderen - in "Konflikt" (sozusagen) und fallen dann in Verwirrung, wenn Sie diese Bedingungen, ausgehend von der Annahme, dass, wenn etwas "anderen" so wie wir sie wollen .
Ich sehe es auf diese Weise wird eine Klasse eine Definition! Es ist genau definiert eine Klasse möglicher Objekte. Die Klasse ist der Satz von Methoden und Eigenschaften (wenn Sie möchten, wir können auch Ereignisse - was sonst ... nicht nur, dass spezielle Methoden), die das Objekt besitzen soll.
Zum Beispiel, wenn wir in Actionscript zu schreiben, oder jede andere objektorientierte Sprache:
1 2 3 4
| class MyClass { MiaClass function () {} Funktion myMethod () {} } |
Wir haben eine Klasse und nicht ein Objekt definiert. Im Grenzfall haben wir "definiert" eine "mögliche" Objekt. Wir könnten sogar sagen, und das zu Recht, dass das Objekt zur Laufzeit existiert, während die Klasse nicht (in Wahrheit gibt es dynamische Klassen, die definiert werden können - und dann verwendet, um Objekte zu erstellen - auch während der Laufzeit). Ausschließen statische Klassen, natürlich, dass - letztendlich - sind nichts anderes als sub-Instanzen (oder Instanzen versteckt) und dann reale Objekte.
Aber wenn wir:
1
| MiaClasse = new MiaClasse ( ) ; var MyObject: MyClass = new MyClass (); |
! Hier mioOggetto ist eine Instanz von MiaClasse() ! . Das mioOggetto ist ein Thema - in der Tat - vom Typ MiaClasse() .
. Als Ergebnis ihrer Philosophie, Objekte, Objekte vom Typ MiaClasse() Ich kann so viele, wie ich will, was nicht sein kann - die Definition - von MiaClasse() . Zum Beispiel, wenn der Bericht wahr ist und es macht Sinn:
1 2 3 4 5
| MiaClasse = new MiaClasse ( ) ; var mioOggetto_1: MyClass = new MyClass (); MiaClasse = new MiaClasse ( ) ; var mioOggetto_2: MyClass = new MyClass (); MiaClasse = new MiaClasse ( ) ; var mioOggetto_3: MyClass = new MyClass (); ... MiaClasse = new MiaClasse ( ) ; var mioOggetto_n: MyClass = new MyClass (); |
Es macht keinen Sinn:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| class MyClass { MiaClass function () {} MioMetodo_2 function () {} }
class MyClass { MiaClass function () {} MioMetodo_2 function () {} }
class MyClass { MiaClass function () {} MioMetodo_3 function () {} } |
Object Instance, und daher zusammen und sind abwechselnd für die gleiche Bedeutung in verschiedenen Zusammenhängen verwendet.
Wahrscheinlich nicht viel jemand kümmert sich ... die Frage nach der Vollständigkeit der Anforderungen ... 
Fortsetzung ...
Ich hatte bereits in der gesprochenen Flash CS3: Das neue Event-Handling . Ich komme zurück zum Thema Teillisten für den Unterschied dieses neuen Ansatzes im Vergleich zu früheren Versionen von ActionScript. Schematisch haben wir eine allgemeine Situation dieser Art:

Jedes Objekt, das Ereignisse unterstützt, letztlich exponiert sich die addEventListener (). In der Dokumentation, unter anderem lesen wir:
Was ist für Ereignis-Listener neu in ActionScript 3.0
[...] Um Ereignis-Listener in ActionScript 2.0 hinzufügen wird manchmal verwendet addListener () und manchmal addEventListener (), während in ActionScript 3.0 mit addEventListener () in allen Situationen.
[..]
Event-Management, dann ist standardisiert auf der Ebene der realen Zuhörer. Alle "Features" des Hörens, in der Tat haben die folgende Struktur:
1 2 3
| eventObject : EventType ) : void { eventResponse Funktion (eventObject: EventType): void { / / Die Aktionen in Reaktion auf die Ereignisse werden hier definiert. } |
o una sua sottoclasse. EvenType ist immer ein Objekt der Klasse Event oder eine Unterklasse. . Dies ermöglicht für weitere Informationen spezifisch für die jeweilige Veranstaltung zusätzlich zur Handhabung Standard-Eigenschaften wie target oder currentTarget .
Ein wichtiger Unterschied zu früheren Versionen von ActionScript, in Bezug auf die Zuhörer, ist, dass:
In ActionScript 2.0 können Ereignis-Listener entweder Funktionen, Methoden oder Objekte sein, während in ActionScript 3.0, Event-Listener nur Funktionen oder Methoden werden können.
Kurz gesagt, mit verwendet für einige Zeit, um bei Struktur von früheren Versionen von Flash, muss ich sagen, dass dieser neue Ansatz ist wirklich schön. Es ist ein bisschen ", dass die Entwicklung mit ActionScript 3.0 und nach einer kleinen anfänglichen Verlust (nur wiedergewinnen, was selbstverständlich) jetzt kann ich nicht verstehen, wie könnte ich das" alte "Methode der Ereignisse der vorherigen Versionen zu tragen.
Fortsetzung ...
Google hat APIs - Javascript - um ihre Karten in jedem Web-Site setzen wetteiferten, wie die gleiche Sache mit Flash zu erreichen.!
Wir beginnen mit einer kostenlosen Komponente, UMAP (Universal ActionScript 3.0 Mapping API - Integriert mit Google Maps), entwickelt von AFComponents , eine vertikal organisierte Unternehmen von Komponenten für Flash / Flex wirklich interessant und erschwinglich. Auf dem Gelände, wo man sich registrieren um die Vorteile der kostenlosen Downloads brauchen, gibt es auch Versionen von UMAP für ActionScript 2.0: MAP G Ver.2.6.1 . In diesem Fall werden wir analysieren die Version 0.4 Beta UMAP für ActionScript 3.0 (in der Verpackung gibt es auch eine Flex-Komponente). Das werden wir sehen, ist - natürlich - eine Beta-Version und es fehlt daher einige Funktionen in der Version für ActionScript 2.0 ( G Ver.2.6.1 MAP ). Allerdings Wächter in die Zukunft, es interessanter, die Aufmerksamkeit auf dieses Release zu konzentrieren scheint, ich versuchten beide, und trotz der Freilassung von mehr komplett für Actionscript 2.0, ist Actionscript 3.0 Beta-Version deutlich stärker.
Fortsetzung ...
Weihnachtsmann Dear Adobe,
obwohl es bereits zwei Patches für Flash CS3 (Version 9.0.2) erhalten hat, haben einige Probleme in seiner Verwendung als all die Software in der Welt erschienen, vor allem in dieser Pressemitteilung, die sehr viele Veränderungen durchgemacht hat.
- Die "ActionScript-Editor, zum Beispiel, ist langsam und ruckartig! Betrachten Sie, lieber Vater Adobe, mein Auto 8Gbyte RAM und einen Intel Quad-Core-Duo hat!
- Während die automatische Formatierung, Codezeilen wie diese unten sind "missverstanden" und neu formatiert evil:
1
| ( MouseEvent . CLICK , function ( e ) { myfunc ( ) ; } ) ; mybtn. addEventListener ( MouseEvent . KLICKEN, function (e) {myfunc ();}); |
Hinzufügen Klammern, wo es sein sollte:
1 2
| ( MouseEvent . CLICK , function ( e ) { myfunc ( ) ; } ) ; mybtn. addEventListener ( MouseEvent . KLICKEN, function (e) {myfunc ();}); // < -- chi te l'ha detto?! } / / <- Wer hat dir gesagt? |
Also besser verwenden Sie die Syntax:
- Die Fenster docket, zumindest in der Implementierung von Windows Vista, hie und da unter anderen Panels verschwinden ... Das Hilfefenster, die Führung in kurzen, schafft ein Problem, wenn Sie ein Projekt zu versuchen. Letzteres in der Tat verschwindet hinter den anderen Platten ... Geheimnis! Doch dieser Mangel, wie andere, ist nicht immer reproduzierbar.
- Die Komponenten sind ein merkwürdiges Verhalten: manchmal gezeigt werden, in Design-Zeit, als weiße Rechtecke ... während sie weiterhin zur Laufzeit zu betreiben!

- Die "anterprima scale9Grid, wie in der neuen Dokumentation angegeben und in der Lage sein, um die Objekte korrekt zu Design-Time-Größe zu zeigen, wird weiterhin von den gleichen Problemen wie die vorherige Version geplagt werden! Schade!

Allerdings ist Weihnachten alles besser ... so lieben Weihnachtsmann Adobe, wir freuen uns auf zukünftige Updates.
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 ...