Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-02-2007, 09:16   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
Bilder zerteilen

Hallo Leute,

kann mir jemand sagen, wie man mit ActionScript ein Bild in mehrere kleine Bilder zerteilen kann?

Danke und Gruß

mellon
mellon ist offline   Mit Zitat antworten
Alt 21-02-2007, 09:32   #2 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
Deine Frage ist etwas unpräzise aber ich würde sagen:
dein Bild (MC? Grafik?) in eine Bitmap kopieren (BitmapData.draw) und dann mit BitmapData.copyPixels Bereiche davon in kleinere Bitmaps umkopieren. Diese kleinen Teil-Bitmaps hängst du an je einen MovieClip. Dann kannst du sie unabhängig voneinander verschieben usw.


Ganz generell wirst du dich wohl mit der BitmapData-Klasse auseinander setzen müssen.

Gruss - Skorpion
Skorpion ist offline   Mit Zitat antworten
Alt 21-02-2007, 10:36   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
Erst mal danke für die schnelle Antwort. Leider habe ich bis jetzt nichts gefunden, wo das mit der Bitmap-Klasse vernünftig erklärt wird. Die Flash-Hilfe find ich nicht sehr hilfreich. Kennt jemand ein gutes Tutorial oder so? Gruß mellon
mellon ist offline   Mit Zitat antworten
Alt 21-02-2007, 12:50   #4 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
Sorry, komm leider nicht weiter. Ich habe eine Bitmap-Datei (ich kann sie aber auch erst in einen Movieclip konvertieren, wenn das besser wär) in der Bibliothek liegen. Dieses Bild möchte ich nun wie bei einem Puzzle in mehrere Teile aufteilen. Ich habe aber bisher immer noch nicht rausgefunden, wie ich die Funktion draw benutzen muss. Die Flash-Hilfe hilft mir nicht weiter. Wenn mir jemand ein Beispiel geben könnte, wär ich sehr dankbar.

Gruß mellon
mellon ist offline   Mit Zitat antworten
Alt 21-02-2007, 13:12   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
das beispiel würde genauso aussehen wie das beispiel in der flash-hilfe: die selben befehle, die selben argumente ...

wenn du damit nicht klar kommst, dann vielleicht:
zerteile dein bild in z.b. photoshop in putzleteile
oder erzeuge je puzzle eine maske
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 21-02-2007, 13:26   #6 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
Wenn es um eine Art Puzzle mit Bitmap-Grafik geht gäbe es noch eine ganz andere Methode, eine die ohne BitmapData auskommt:

Mehrere Vektor-Flächen gleichzeitig markieren und beim Farbmischer deine - in die Bibliothek importierte - Bitmap-Grafik anwählen.
Skorpion ist offline   Mit Zitat antworten
Alt 21-02-2007, 15:53   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
So, da bin ich wieder. Das Bild muss in ActionScript zerteilt werden, damit man jederzeit die Anzahl der Teile ändern kann und damit man jederzeit das Bild austauschen kann. Ich hab jetzt soviel verstanden, dass ich zuerst ein leeres Bitmap-Objekt erstellen muss. Dann muss ich mit der draw-Methode einen Movieclip in das Bitmap einbinden. Aber ich weiß nicht genau, wie das funktioniert. Ich habe also einen Movieclip mit einem Bild in der Bibliothek.

Das Beispiel in der Flash-Hilfe find ich nicht sehr hilfreich:
PHP-Code:
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Matrix;
import flash.geom.ColorTransform;

var 
myBitmapData:BitmapData = new BitmapData(10080false0x00CCCCCC);

var 
mc_1:MovieClip this.createEmptyMovieClip("mc"this.getNextHighestDepth());
mc_1.attachBitmap(myBitmapDatathis.getNextHighestDepth());

var 
mc_2:MovieClip createRectangle(50400xFF0000);
mc_2._x 101;

var 
myMatrix:Matrix = new Matrix();
myMatrix.rotate(Math.PI/2);

var 
translateMatrix:Matrix = new Matrix();
translateMatrix.translate(7015);

myMatrix.concat(translateMatrix);

var 
myColorTransform:ColorTransform = new ColorTransform(0011002550);
var 
blendMode:String "normal";

var 
myRectangle:Rectangle = new Rectangle(0010080);
var 
smooth:Boolean true;

mc_1.onPress = function() {
    
myBitmapData.draw(mc_2myMatrixmyColorTransformblendModemyRectanglesmooth);
}

function 
createRectangle(width:Numberheight:Numbercolor:Number):MovieClip {
    var 
depth:Number this.getNextHighestDepth();
    var 
mc:MovieClip this.createEmptyMovieClip("mc_" depthdepth);
    
mc.beginFill(color);
    
mc.lineTo(0height);
    
mc.lineTo(widthheight);
    
mc.lineTo(width0);
    
mc.lineTo(00);
    return 
mc;

Ich glaube, da sind viel zu viele Funktionen drin, die ich gar nicht brauche und es ist auch nicht ersichtlich, wie ich einen Movieclip aus der Bibliothek einbinden kann. Ich find das ziemlich verwirrend.
mellon ist offline   Mit Zitat antworten
Alt 21-02-2007, 15:59   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
hab jetzt keine zeit dir sowas zu programmieren.

prinzipiell:
- ein myBitmapData erzeugen und das bild da reinladen

je puzzle
- ein mc erzeugen
- eine weitere Bitmap erzeugen
- einen ausschnitt aus myBitmapData da rein copieren
- dieses Bitmap dem puzzle-mc zuordnen

zum schluss
- myBitmapData wieder entfernen
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 21-02-2007, 16:12   #9 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
Danke noch mal,

im Moment geht es mir nur um die Frage, wie ich den Movieclip in das Bitmap-Objekt laden kann, ich denke, den Rest krieg ich jetzt selber hin. Der Movieclip ist ja in der Bibliothek, aber in dem Beispiel werden immer nur neu erstellte Movieclips benutzt. Ich dachte zuerst, es müsste so gehen:
PHP-Code:
var myBitmapData:BitmapData = new BitmapData(10080false0x00CCCCCC);

var 
mc_1:MovieClip this.attachMovie("pic_mc""pic"this.getNextHighestDepth());

myBitmapData.draw(mc_1); 
Ist das so richtig?
mellon ist offline   Mit Zitat antworten
Alt 21-02-2007, 16:40   #10 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
Hat funktioniert!

Vielen Dank noch mal an hgseib und Skorpion!

Gruß mellon
mellon ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele