Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-01-2006, 10:56   #1 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Text unter Bild wird verdeckt.

Es gibt einen leeren MC mcTarget.
In diesen werden mit einer Slideshow dynamisch Bilder aus einer XML Datei geladen. Die Bilder haben fast alle
die gleichen Maße, nur die Höhe ist bei einigen etwas höherer.
Unter diesem leeren MC ist eine dynamische Textbox tPicture in der der Text aus der XML Datei erscheint.
Der leere MC mcTarget und die Textbox tProduct sind statisch hinzugefügt.
Nun habe ich aber das Problem, dass die Textbox bei den höheren Bildern teilweise überdeckt wird.
Wie kann ich es erreichen, dass die Textbox mit AS etwas weiter nach unten gesetzt wird, wenn
ein höheres Bild geladen wird?

Man müsste die Höhe des Bildes herausfinden und diese zur y Koordiante des leeren MCs addieren + 5 Pixel Abstand.
Aber wie?

Geändert von compuboy1010 (19-01-2006 um 11:05 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 19-01-2006, 11:11   #2 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
aloha!

wenn du die hereingeladenen bilder nicht extra positionierst:
frage vorweg: fragst du den ladezustand ab?

du müsstest überprüfen, ob der mc schon das bild geladen hat, um dann die höhe ausgeben lassen zu können;

ladest du jedes bild in einen extra leeren mc oder alle in einen?
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary

Geändert von andretti (19-01-2006 um 11:17 Uhr)
andretti ist offline   Mit Zitat antworten
Alt 19-01-2006, 11:32   #3 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
ActionScript:
  1. stop();
  2. var slides_xml:XML = new XML();
  3. slides_xml.onLoad = startSlideShow;
  4. slides_xml.load("de/katalog/php/images.php?pid=" +_global.nCurrentPid);
  5. slides_xml.ignoreWhite = true;
  6. var sProductPic:String;
  7.  
  8. //
  9. // Show the first slide and intialize variables
  10. function startSlideShow(success) {
  11.     if (success == true) {
  12.             rootNode = slides_xml.firstChild;
  13.             totalSlides = rootNode.childNodes.length;
  14.             firstSlideNode = rootNode.firstChild;
  15.             currentSlideNode = firstSlideNode;
  16.             currentIndex = 1;
  17.             updateSlide(firstSlideNode);
  18.             tProduct._y = mcTargetClip._height + mcTargetClip._y + 5;
  19.     }
  20. }
  21. //
  22. // Updates the current slide with new image and text
  23. function updateSlide(newSlideNode) {
  24.     sImagePath = newSlideNode.attributes.jpegURL;
  25.     sProductPic = newSlideNode.attributes.pic;
  26.     slideText = newSlideNode.firstChild.nodeValue;
  27.     loadMovie(sImagePath, mcTargetClip);
  28. }
  29. //
  30. // Event handler for 'Next slide' button
  31. mcNextSlide.onRelease = function() {
  32.     nextSlideNode = currentSlideNode.nextSibling;
  33.     if (nextSlideNode == null) {
  34.         break;
  35.     } else {
  36.         currentIndex++;
  37.         updateSlide(nextSlideNode);
  38.         currentSlideNode = nextSlideNode;
  39.     }
  40. };
  41.  
  42. // Event handler for 'Previous slide' button
  43. mcPrevSlide.onRelease = function() {
  44.     previousSlideNode = currentSlideNode.previousSibling;
  45.     if (previousSlideNode == null) {
  46.         break;
  47.     } else {
  48.         currentIndex--;
  49.         currentSlideNode = previousSlideNode;
  50.         updateSlide(previousSlideNode);
  51.     }
  52. };
  53.  
  54. mcTargetClip.onRelease = function() {
  55.     getURL(sProductPic, "_blank");
  56. };
compuboy1010 ist offline   Mit Zitat antworten
Alt 19-01-2006, 11:35   #4 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Bevor ich lange erkläre schau es dir kurz an. Habe gerade folgende Zeile eingefügt, die bring aber anscheinend garnix.

ActionScript:
  1. tProduct._y = mcTargetClip._height + mcTargetClip._y + 5;



ActionScript:
  1. stop();
  2. var slides_xml:XML = new XML();
  3. slides_xml.onLoad = startSlideShow;
  4. slides_xml.load("de/katalog/php/images.php?pid=" +_global.nCurrentPid);
  5. slides_xml.ignoreWhite = true;
  6. var sProductPic:String;
  7.  
  8. //
  9. // Show the first slide and intialize variables
  10. function startSlideShow(success):Void {
  11.     if (success == true) {
  12.             rootNode = slides_xml.firstChild;
  13.             totalSlides = rootNode.childNodes.length;
  14.             firstSlideNode = rootNode.firstChild;
  15.             currentSlideNode = firstSlideNode;
  16.             currentIndex = 1;
  17.             updateSlide(firstSlideNode);
  18.             tProduct._y = mcTargetClip._height + mcTargetClip._y + 5;
  19.     }
  20. }
  21. //
  22. // Updates the current slide with new image and text
  23. function updateSlide(newSlideNode):Void {
  24.     sImagePath = newSlideNode.attributes.jpegURL;
  25.     sProductPic = newSlideNode.attributes.pic;
  26.     slideText = newSlideNode.firstChild.nodeValue;
  27.     loadMovie(sImagePath, mcTargetClip);
  28. }
  29. //
  30. // Event handler for 'Next slide' button
  31. mcNextSlide.onRelease = function():Void {
  32.     nextSlideNode = currentSlideNode.nextSibling;
  33.     if (nextSlideNode == null) {
  34.         break;
  35.     } else {
  36.         currentIndex++;
  37.         updateSlide(nextSlideNode);
  38.         currentSlideNode = nextSlideNode;
  39.     }
  40. };
  41.  
  42. // Event handler for 'Previous slide' button
  43. mcPrevSlide.onRelease = function():Void {
  44.     previousSlideNode = currentSlideNode.previousSibling;
  45.     if (previousSlideNode == null) {
  46.         break;
  47.     } else {
  48.         currentIndex--;
  49.         currentSlideNode = previousSlideNode;
  50.         updateSlide(previousSlideNode);
  51.     }
  52. };
  53.  
  54. mcTargetClip.onRelease = function() {
  55.     getURL(sProductPic, "_blank");
  56. };
compuboy1010 ist offline   Mit Zitat antworten
Alt 19-01-2006, 11:43   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Ach komm... Also mittlerweile solltest du aber wissen, dass man "mcTargetClip._height" erst abfragen kann, wenn das Bild (bzw. der Inhalt) geladen ist. Also muss da ein kleiner Preloader rein.

Da das eh Flash 8 ist, kannst du ja auch einen MovieClipLoader() und onLoadInit() verwenden.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 19-01-2006, 11:49   #6 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Ich hatte einen Monat Urlaub. Bin voll raus aus Flash. Wärst du mir böse, wenn ich dich um einen Ansatz fragen würde?
compuboy1010 ist offline   Mit Zitat antworten
Alt 19-01-2006, 12:14   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Einen Monat und schon isses vorbei mit den Flash-Kenntnissen ???

Kurzes Beispiel für einen MovieClipLoader:
PHP-Code:
var mc:MovieClip this.createEmptyMovieClip("bild"1);
var 
mcl:MovieClipLoader = new MovieClipLoader();
var 
ml:Object = new Object();
//
ml.onLoadInit = function(ziel) {
    
trace(ziel+" fertig geladen!");
    
trace("Höhe: "+ziel._height);
    
trace("Breite: "+ziel._width);
    
//Hier das, was nun passieren soll...
};
mcl.addListener(ml);
mcl.loadClip("dein_bild.jpg"bild); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 19-01-2006, 12:20   #8 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Zitat:
Zitat von Der Frager
Einen Monat und schon isses vorbei mit den Flash-Kenntnissen ???
So, bin selber geschockt. Sieht so aus, denn folgendes klappt nicht.

ActionScript:
  1. function updateSlide(newSlideNode):Void {
  2.     sImagePath = newSlideNode.attributes.jpegURL;
  3.     sProductPic = newSlideNode.attributes.pic;
  4.     slideText = newSlideNode.firstChild.nodeValue;
  5.  
  6.     var mclListener:Object = new Object()
  7.     mclListener.onLoadInit = function(mcTargetClip:MovieClip) {
  8.         tProduct._y = mcTargetClip._height + mcTargetClip._y + 5;
  9.     };
  10.     var image_mcl:MovieClipLoader = new MovieClipLoader();
  11.     image_mcl.addListener(mclListener);
  12.     image_mcl.loadClip(sImagePath, mcTargetClip);
  13. }
  14. //
  15.  
compuboy1010 ist offline   Mit Zitat antworten
Alt 19-01-2006, 12:24   #9 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
Zitat:
Zitat von andretti
aloha!

wenn du die hereingeladenen bilder nicht extra positionierst:
frage vorweg: fragst du den ladezustand ab?

du müsstest überprüfen, ob der mc schon das bild geladen hat, um dann die höhe ausgeben lassen zu können;

ladest du jedes bild in einen extra leeren mc oder alle in einen?


mir glaubt er net, aber dem DerFrager schon.....



lass den mc einen leeren moviclip erstellen("checker"),:

PHP-Code:
/......
 
checker.onEnterFrame = function() { 
        if (
this._parent.getBytesLoaded()>=4) { 
            
this._parent.getBytesLoaded(); 
            
this._parent.getBytesTotal(); 
            
Math.round((l/t)*100); 
            if (
p>=100) {
//das textfeld positionieren .....
}
}

__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 19-01-2006, 12:32   #10 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
@andretti -> Hatte deinen Beitrag gar nicht gelesen.

@compuboy: Pfade und Vars checken (Debugger oder tracen).
Was ist z.B. "mcTargetClip"? Kennt die Funktion den?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 19-01-2006, 12:46   #11 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Hallo @beide,
ja die Pfade mal wieder. So klappt es:

ActionScript:
  1. var mcSlideShow:MovieClip = this;
  2.  
  3. // Updates the current slide with new image and text
  4. function updateSlide(newSlideNode):Void {
  5.     sImagePath = newSlideNode.attributes.jpegURL;
  6.     sProductPic = newSlideNode.attributes.pic;
  7.     slideText = newSlideNode.firstChild.nodeValue;
  8.     mclListener.onLoadInit = function(mcTargetClip:MovieClip) {
  9.         mcSlideShow.tPicture._y = mcTargetClip._height + mcTargetClip._y + 5;
  10.     };
  11.     image_mcl.addListener(mclListener);
  12.     image_mcl.loadClip(sImagePath, mcTargetClip);
  13. }
  14. //
  15.  

Danke für die Mühe.
compuboy1010 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 11:27 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele