Mit genau dem Problem habe ich mich kürzlich beschäftigt, deshalb kann ich Dir hier ein paar Tips geben:
1. Zuerst machst Du eine neue Datei.
2. Auf der Bühne ziehst Du ein Linie von einem gedachten Mittelpunkt in Richtung elf Uhr.
3. Den Sprite löschst Du wieder, den neuen Member läßt Du in der Bestzung
4. Nun ziehst du eine Linie von einem gedachten Mittelpunkt hin zu zwei Uhr.
5. Den Sprite läßt Du stehen.
6. Nun machst Du ein Frameskript mit "on exitFrame go to the Frame end"
7. Dann kopierst Du folgendes in ein Filmskript:
global clickMode, clickV, clickH
on startMovie
sprite(1).visible = 0
-- clickMode ist ein Zähler, bei jedem Klick um 1 erhöht wird (s.u.)
clickMode = 1
end startMovie
on mouseUp
-- hier wird der Wert von clickMode abgefragt:
case clickMode of
1:
-- wenn clickMode 1 ist, werden die Variablen clickH und clickV festgelegt, die Linie sprite(1) wird sichtbar
sprite(1).visible = 1
clickH = the mouseH
clickV = the mouseV
clickMode = clickMode + 1
2:
-- wenn clickMode 2 ist, wird nur der Zähler erhöht, die Linie "bleibt liegen"
clickMode = clickMode + 1
otherwise:
-- wenn clickMode größer als 2 ist, wird die Linie wieder unsichtbar gemacht
sprite(1).visible = 0
clickMode = 1
end case
end mouseUp
on prepareFrame me
-- immer bevor der Abspielkopf den Frame "betritt", folgt, wenn clickMode = 2 ist das Ende der Linie dem Cursor
if clickMode = 2 then
-- jenachdem, wo der Mauspfeil im Verhältnis zur ersten Koordinate steht, wird der Darsteller ausgetauscht.
-- Wenn das nicht der Fall ist, kann es passieren, daß die Linie "falschrum" steht.
-- also wird nach Bedarf entweder die "elf-Uhr"- oder die "zwei-Uhr"-Variante verwendet
if the mouseH < clickH then
if the mouseV > clickV then
sprite(1).member = 2
else
sprite(1).member = 1
end if
else
if the mouseV > clickV then
sprite(1).member = 1
else
sprite(1).member = 2
end if
end if
-- hier wird der Anfangspunkt auf die zuvor festgelegten Koordinaten gesetzt
sprite(1).top = clickV
sprite(1).left = clickH
-- hier wird der Endpunkt dahin gesetzt, wo die Maus ist
sprite(1).bottom = the mouseV
sprite(1).right = the mouseH
end if
end prepareFrame
Das ist das Basisskript, das Du natürlich nach Bedarf (und ohne Ende) modifizieren kannst. Zum Beispiel kann man statt sprite(1) eine Variable einsetzten, die bei jedem Mal, wenn die Linie festgelegt ist, inkrementiert (also um 1 erhöht) wird, so daß dann ein anderer Sprite benutzt wird und somit eine neue Linie festgelegt wird.
Soviel dazu. Ich kann Dir leider nicht die ganze Programmierarbeit abnehmen. Geht natürlich auch, dann müßte ich Dir aber eine Rechnung stellen. Die Profis kosten eben auch immer Geld... ; )
grüsse,
Christof
als Antwort auf: [#66251]