Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-03-2004, 09:29   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 79
wenn zoom, externes bild nachladen

hallo AS-Gurus!

ich habe wieder mal eine für mich noch nicht lösbare aufgabe:

ich erstelle gerade eine animation, in der sich ein objekt um 360° drehen läßt (animation aus 16 einzelbildern der verschiedenen winkel) und in die man hineinzoomen kann und das objekt im fenster verschieben (drag) kann wenn man gezoomt hat

das funktioniert auch alles soweit, aber nun das problem:

beim zoomen sollten ja auch die detail´s sichtbar werden. dazu möchte ich externe jpg nachladen. die jpg sind in der höchsten auflösung 2330 x 2330 pixel gross. ich habe 3 verschiedene auflösungen.

da diese bilder zu gross sind um sie auf einmal zu laden, habe ich sie in kacheln aufgeteilt (10x10 kacheln bei der höchsten auflösung) und es soll nur die kachel geladen werden, die im fenster sichtbar ist.

ich schaffe es aber nicht, dass die bilder nachgeladen werden. mein skript-gedanke sieht so aus:

wenn mc skalierung größer 130%{
wenn diese kachel auf bühne sichtbar{
lade 2.auflösung.jpg}

wenn mc skalierung größer 300%{
wenn diese kachel auf bühne sichtbar{
lade 2.auflösung.jpg}
}

es sollen also die einzelnen kacheln erkennen, ob ihre zoomstufe erreicht ist und ob sie überhaupt auf der bühne sichtbar sind. wenn beides zutrifft, soll die jeweilige kachel nachgeladen werden.

ich weiss aber nicht wie ich das in actionskript formulieren soll (function? clip event?) und wo ich welches skript plazieren soll (hauptzeitleiste? Kachel?).

wäre spitze, wenn mir da jemand weiterhelfen könnte.


viele grüße


picassi
picassi ist offline   Mit Zitat antworten
Alt 17-03-2004, 14:01   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

wie skalierst du denn die einzelnen Kacheln? Hast du über dem MC mit den einzelnen Kacheln eine Maske?

Ein möglicher Ansatz wäre folgender:

Setze ein onOnterFrame auf je Kachel.

Prüfe darin, ob der MC die Maske berührt:
if(this.hitTest(_root.maske)) {...}

Prüfe dann, welche Skalierung das Ding hat
if(this._xscale >= 130) {..}
oder
if(_root.hauptMC._xscale >= 130) {...}

In Abhängigkeit von der Skalierung kannst du dann die neuen Bilder in die Kacheln laden, die gesehen werden.

Du musst dann nur speichern (je Kachel), welche Datei darin geladen wurde, damit diese nicht immer wieder neu lädt, sondern nur, wenn sie die Auflösung ändern soll.

Bei vielen Kacheln wird das allerdings ein wenig imperformant, da du unheimlich viele onEnterFrames hast und vor allem in jedem einen hitTest...es ist auch nur ein Ansatz.

Alternativ könntest du anhand der Skalierung des HauptMC und der Position sowie der Kachelgröße zentral in einem onEnterFrame berechnen, welche Kacheln sichtbar sind. Das ist halt ein bisschen Mathe

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 17-03-2004, 15:53   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 79
danke ludabruda

das mit dem onEnterFrame hatte ich inzwischen selber geschafft, aber den hitTest kannte ich bisher noch nicht. jetzt funktionierts.

ich hoffe die performance geht nicht zu sehr in den keller (ich habe insgesamt 2800 (!!!) kacheln.

gruß

picassi
picassi ist offline   Mit Zitat antworten
Alt 17-03-2004, 16:47   #4 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
dann geh davon aus, dass die Performance in den Keller geht

2800 onEnterFrames mit hitTests schafft wohl kaum ein Rechner.
Ich empfehle dir daher eher die zweite Variante...

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 18-03-2004, 09:05   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 79
es sind immer "nur" 174 zur selben zeit sichtbar. das zoomen funktioniert auch, aber nun habe ich ein anderes problem.

wenn ich das objekt weiterdrehe, werden die bilder nicht mehr ausgetauscht. ich habs mit onEnterFrame probiert. dann mit onMouseUp (dass nur aktualisiert wird, wenn ich die maus loslasse), mit selbem ergebnis

das untere skript liegt auf den kacheln. vielleicht ist da ja was falsch bzw. besser zu machen.





/*this.onEnterFrame = function() {
if ((_level0.breit > 130)&&(_level0.breit < 330)){
if (this.hitTest(_root.hg)) {
loadMovie("data/m/m_"+_level0.zoomclip.bild +"_08.jpg", _this);
updateAfterEvent();
}
}
};*/



this.onMouseUp = function() {
if ((_level0.breit > 130)&&(_level0.breit < 330)){
if (this.hitTest(_root.hg)) {
loadMovie("data/m/m_"+_level0.zoomclip.bild +"_08.jpg", _this);
updateAfterEvent();
}
}
};




danke schon mal

picassi
picassi 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 13:26 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele