hilfdirselbst.ch
Facebook Twitter gamper-media
Anonym
Beiträge: 22827
13. Apr 2003, 18:29
Beitrag #1 von 7
Bewertung:
(3070 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ausschnitte vergrössern


ich hab ein problem und zwar habe ich ein document als bitmap auf der bühne es ist allerdings zu klein um es lesen zu können darum möchte ich wenn ich es mit der mouse überfahre das es vergrößert wird.
aber nicht das gesammte dokument, nur ein kleiner ausschnitt soll jeweils vergrössert dargestellt werden.
ich hab leider keine ahnung wie ich da ran gehen soll.
kann mir jemand einen tipp geben?
wäre furchtbar nett.
m. Top
 
X
donkey shot
Beiträge: 1416
13. Apr 2003, 19:15
Beitrag #2 von 7
Beitrag ID: #31748
Bewertung:
(3070 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ausschnitte vergrössern


Frage: Warum soll denn nur ein Ausschnitt vergrössert werden? Ist das bitmap zu groß oder ist das eine Sache der Gestaltung?

Und soll es mehrere Vergrößerungsschritte geben oder nur einen?
Soll der Ausschnitt gescrollt werden können?

grüsse

Christof
als Antwort auf: [#31738]
(Dieser Beitrag wurde von donkey shot am 13. Apr 2003, 19:16 geändert)
Top
 
Anonym
Beiträge: 22827
13. Apr 2003, 22:33
Beitrag #3 von 7
Beitrag ID: #31756
Bewertung:
(3070 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ausschnitte vergrössern


das document ist sonst zu gross
und ich möchte das es so aussieht als würde eine lupe über das dokument geführt werden
als Antwort auf: [#31738] Top
 
donkey shot
Beiträge: 1416
14. Apr 2003, 12:18
Beitrag #4 von 7
Beitrag ID: #31803
Bewertung:
(3070 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ausschnitte vergrössern


Ich würde an Deiner Stelle nicht zu kompliziert machen und wie folgt vorgehen - ich habe irgendwann mal so eine scrollbare Karten mit einem kleinen Monitor zum Verschieben eines Ausschitts so gebastelt:

1. Du setzt das vergrösserte Dokument als Sprite (A) in den 1. Kanal. Meine Karte war etwa 2000 x 2000 Pixel groß. Director hatte damit eigentlich keine Probleme. Wenn die Größe auf die Performance schlägt, kann man die Grafik immer noch in Stücke teilen, das würde dann aber das Script etwas verkomplizieren.

2. In den 2. Kanal setzt Du eine Maske - den von Dir gewünschten Hintergrund. Am besten ein PICT mit einem Alphakanal. Diese Maske legt den Ausschnitt fest, der von dem Dokument zu sehen ist. Das verkleinerte Dokument (B) kann sich auch darauf befinden.

3. Als drittes brauchst Du eine Fläche (C), die so groß ist, wie das vekleinerte Dokument (B). Am besten Du wählst einen geraden Vergrößerungsfaktor von z.B. 10. Dann wäre das große Dokument 1000 Pixel breit, das kleine 100.

4. Nun weist Du (C) ein Verhalten zu, das den unteren Sprite (A) durch die Gegend bewegt, wenn man über die Fläche (C) fährt. Dazu brauchst Du den Handler on mouseWithin (me). Mittels der Befehle mouseH und mouseV kannst Du auslesen, wo sich die Maus befindet. Diese Werte * 10 +/- den Abstand von (C)'s Abstand zum Bühnenrand legen dann locH und locV von (A) fest.

Das ist etwa der Prototyp (die Zahlen sind natürlich erfunden, die mußt Du ausprobieren oder ausrechnen):

on mouseWithin me
set the locV of sprite 1 to the mouseV * 2 -100
set the locH of sprite 1 to the mouseH * 2 -100
end mouseWithin

(2 wäre der Vergrösserungsfaktor, 100 der Abstand zum Bühnenrand, der ausgeglichen werden muss).

Da muss natürlich noch einiges dran gemacht werden, damit (A) nicht irgendwie seltsam herumspringt, wenn man (C) verlässt.

Eine andere Methode, wäre es, den Ausschnitt mittels Hotspots auf dem kleinen Dokument zu scrollen.

Ob es sinvoll ist, das ganze in "Echtzeit" zu machen oder ob man das Scrollen mittels eines Zählers verzögert, musst Du ausprobieren.

Wirklich realistisch eine Lupe darzustelle, wäre kompliziert, da man die Maske dann auch mitbewegen müsste, und der Ausschnitt aus dem kleinen Dokument "herausgestanzt" werden müsste. Da müsste man das Pferd wohl anders aufzäumen.

Naja. Ich hoffe ich habe mich halbwegs verständlich ausgedrückt und das hilft Dir erstmal weiter.

Viel Erfolg und Grüsse,

Christof
als Antwort auf: [#31738]
(Dieser Beitrag wurde von donkey shot am 14. Apr 2003, 12:22 geändert)
Top
 
donkey shot
Beiträge: 1416
14. Apr 2003, 17:19
Beitrag #5 von 7
Beitrag ID: #31849
Bewertung:
(3070 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ausschnitte vergrössern


Völliger Blödsinn, das Beispielskript. Habe erst getippt und dann gedacht. Sprite (A) muß sich ja gegen die Mausbewegung verschieben!

Hier die korrigierte Fassung:

on mouseWithin me

sprite(1).locH = 100 - ((the mouseH - the locH of sprite(the spriteNum of me)) * 3)
sprite(1).locV = 100 - ((the mouseV - the locV of sprite(the spriteNum of me)) * 3)

end mouseWithin

Folgende Platzhalter müssen ersetzt werden: 100 ist die Position des Ausschnitts (also Anfangsposition von (A) und 3 der Vergrösserungsfaktor. Wobei Sprite (A) immer die Größe von (C) haben muss plus die Größe des Ausschnitts!
Also z.B. kleines Dokument 100 px, grosses Dokument (Faktor 4) 400 px + Breite des Ausschnitts.

grüsse

Christof
als Antwort auf: [#31738]
(Dieser Beitrag wurde von donkey shot am 14. Apr 2003, 17:20 geändert)
Top
 
Barbara Eckholdt
Beiträge: 585
14. Apr 2003, 20:52
Beitrag #6 von 7
Beitrag ID: #31863
Bewertung:
(3070 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ausschnitte vergrössern


Hallo m.,

ich hätte da wohl ganau das, was du haben möchtest. Leider scheint das für eine Uralt-Version von Director zu sein, denn mit meiner Version (7.0) kann ich es schon nicht mehr bearbeiten. Vielleicht verfügt ja Christoph über eine passende Directorversion, um Lingo zu kopieren?

Gruß von Barbara
als Antwort auf: [#31738] Top
 
Barbara Eckholdt
Beiträge: 585
14. Apr 2003, 21:25
Beitrag #7 von 7
Beitrag ID: #31865
Bewertung:
(3070 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ausschnitte vergrössern


Hey, ich hab es doch öffnen können das Beispiel mit der Lupe:


on startMovie
global kGrPict, kOpt1, kOpt2, kPList

set kGrPict = 2
set kOpt1 = 3
set kGlass2 = 4
puppetSprite kGrPict, TRUE
puppetSprite kOpt1, TRUE
puppetSprite kOpt2, TRUE

set kPList = [the regPoint of cast "free"]
add kPList, point(the locH of sprite kGrPict, the locV of sprite kGrPict)
add kPList, point(the locH of sprite kOpt1, the locV of sprite kOpt1)
add kPList, point(the locH of sprite kOpt2, the locV of sprite kOpt2)

end startMovie



on stopMovie
global kGrPict, kOpt1, kOpt2, kPList

set the regPoint of cast "free" = getAt(kPList,1)

set GrPictLoc = getAt(kPList, 2)
set Opt1Loc = getAt(kPList, 3)
set Opt2Loc = getAt(kPList, 4)

set the locH of sprite kGrPict = the locH of GrPictLoc
set the locV of sprite kGrPict = the locV of GrPictLoc
set the locH of sprite kOpt1 = the locH of Opt1Loc
set the locV of sprite kOpt1 = the locV of Opt1Loc
set the locH of sprite kOpt2 = the locH of Opt2Loc
set the locV of sprite kOpt2 = the locV of Opt2Loc

updateStage

end stopMovie


wenn das nicht ausreicht, melde dich.
Gruß von Barbara
als Antwort auf: [#31738] Top
 
X