Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Panorama Community. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Freitag, 18. Januar 2013, 16:42

BingMap in einem Container ein und aussliden

Hallo,
beschäftige mich seit kurzem mit html und xml.

möchte jetzt gerne eine Karte ein und ausblenden. Mit dem Container geht es, nur leider wird mir in diesem keine Karte angezigt.

Was mache ich falsch???

$this->cacheCode('[php]','<plugin name="mapcontainer"
url="mapcontainer2.png"
align="leftbottom"
alpha="0.3"
keep="true"
x="0"
y="0"
children="true"
onhover="set(alpha,1.0);"
onout="set(alpha,0.3);"
/>

<plugin name="closemap"
url="close2.png"
parent="mapcontainer"
align="righttop"
x="3"
y="3"
keep="true"
onhover="showtext(Karte schliessen);"
onclick="tween(plugin[mapcontainer].x,-420,0.5);
tween(plugin[mapcontainer].y,-320,0.5);
tween(plugin[map_on].x,0,0.5);
tween(plugin[map_on].y,0,0.5);"
/>

<plugin name="map_on"
url="map_on2.png"
align="leftbottom"
x="-76"
y="-24"
alpha="0.3"
keep="true"
onhover="showtext(Karte einblenden);set(alpha,1.0);"
onout="alpha(alpha,0.3);"
onclick="tween(plugin[mapcontainer].x,0,0.5);
tween(plugin[mapcontainer].y,0,0.5);
tween(x,-76);tween(y,-24);"
/>

<plugin name="bingmap" key="xxx"
url="plugins/bingmaps.swf"
alturl="plugins/bingmaps.js"
maptype="satellite"
parent="mapcontainer"
align="leftbottom" width="400" height="300"
x="0"
y="0"
/>')


Danke

Gruss
tobi

2

Freitag, 18. Januar 2013, 17:39

Für den Fall das du die aktuelle Version 1.0.8.15 im Einsatz haben solltest, könntest du auch versuchen das mit einem "echten" <layer> und type="container" zu bewerkstelligen.

$this->cacheCode('[php]','<layer name="mapcontainer"
url="mapcontainer2.png"
keep="true"
type="container"
align="leftbottom"
width="400" height="300"
zorder="1" >

<plugin name="bingmap" key="xxx"
url="%CURRENTXML%/plugins/bingmaps.swf"
alturl="%CURRENTXML%/plugins/bingmaps.js"
maptype="satellite"
align="lefttop" width="400" height="300"
zorder="2" />

</layer>
')

3

Freitag, 18. Januar 2013, 18:52

Danke, worin liegt der Unterschied? Das andere hatte ich ja halbwegs verstanden...

Wenn ich dein Skript nutze kommt --> FATAL: tour.xml - XML parser error: Unteminated element (#1096)

4

Freitag, 18. Januar 2013, 19:13

XML parser error: Unteminated element (#1096)

Mach mal aus

$this->cacheCode('[php]','zorder="1" >')

$this->cacheCode('[php]','zorder="1" />')

Gérard

5

Freitag, 18. Januar 2013, 19:22

XML parser error: Unteminated element (#1096)

Mach mal aus

$this->cacheCode('[php]','zorder="1" >')

$this->cacheCode('[php]','zorder="1" />')

Gérard


Lieber nicht ;), dann gehts nicht mehr.

6

Freitag, 18. Januar 2013, 19:23

Der Container wird unten mit </layer> geschlossen. Ich vermute, dass irgendwo in deiner tour.xml ein ; fehlt. Überprüfen kannst du dein XML mit dem XML Validator .

Angelheini war mal wieder schneller. ;)

7

Freitag, 18. Januar 2013, 20:24

Lieber nicht ;), dann gehts nicht mehr.

Der Container wird unten mit </layer> geschlossen.


Ihr habt völlig recht - da war ich zu schnell.

Gérard

8

Samstag, 19. Januar 2013, 11:11

Hallo und Danke.

Habe jetzt das drin.... :

$this->cacheCode('[php]','<layer name="mapcontainer"
url="mapcontainer2.png"
keep="true"
type="container"
align="leftbottom"
width="400" height="300"
zorder="1" />

<plugin name="bingmap" key="xxx"
url="plugins/bingmaps.swf"
alturl="plugins/bingmaps.js"
maptype="satellite"
align="lefttop" width="400" height="300"
zorder="2" />
')

aber es wird mir weder ein container noch ne map angezeigt...

WARUM?


Warum sollte man es eigentlich nicht so machen, wie ich angefangen hatte? WIe ich schon schrieb, den vorgang hatte ich halbwegs verstanden, nur halt nicht, warum die map nicht eingeblendet wird...

9

Samstag, 19. Januar 2013, 12:37

Eventuell gibt es Fehlermeldungen oder Warnungen, die nicht direkt angezeigt werden.
Aktiviere doch mal in einer Action, die beim Start des Panos aufgerufen wird, den Logger mit:
$this->cacheCode('[php]','showlog(state,true);')

Ansonsten ist Dein Container vom Typ image, also sollte es heißen:
$this->cacheCode('[php]','type="image"')

Wenigstens der Container sollte angezeigt werden, zum Test kannst Du diesem auch einmal eine Hintergrundfarbe zuweisen, irgendwo wird er schon sein ;).

Ich gehe mal davon aus, dass Du die Lizenz für die Bingmaps hast. Kannst Du diese denn ohne Container sichtbar machen?

Gruß
Karsten

10

Sonntag, 20. Januar 2013, 10:22

Hallo,

erstmal wider danke.

Also, wenn ich $this->cacheCode('[php]','type="image"')

verwende. Wird mir die hinterlege PNG Grafik angezeigt.

Wie aber binde ich das LOG ein?



Aber ich bitte nochmal um eine (kurze) erklärung, warum nicht so wie ich es angefangen habe?? Warum soll man es so machen??


Danke
Tobi

11

Sonntag, 20. Januar 2013, 11:49

Es ist keine eindringliche Empfehlung gewesen, das Beispiel von oben genauso umzusetzen, sondern ein Hinweis, wie ich es eventuell machen würde. Bekanntlich führen viele Wege nach Rom. Es wäre mit deinem zuerst geannten Ansatz natürlich auch möglich gewesen zu einer funktionierenden Lösung zu kommen. Der Vorteil der "container"-Methode ist, dass es meiner Meinung nach etwas übersichtlicher bzw. "lesbarer" ist, weil man nicht mit <parent> arbeiten muss. Gerade vor dem Hintergrund das eventuell sehr viele Elemente wie z.B. die Buttons, die Map und Rahmen etc. angezeigt werden sollen.

Dabei sind <layer> und <plugin> funktional identisch. Ich hatte dir dazu in meinem Beispiel oben auch einen Link angeboten, der folgendes an Infos für dich bereitgestellt hätte

Zitat

the <layer> or <plugin> elements are internally exactly the same elements, only with different names!
Durch die unterschiedliche Benamsung könnte man also versuchen einigermaßen "strukturiert" zu coden, was man sich im fortgeschrittenen "Entwickleralltag" schlecht oder nur mit Mühe wieder antrainieren kann. ;)

Zu deinem Ansatz.

Wenn du einen <container> definierst, den du sogleich schließt, kann auch nichts in diesem <container> angezeigt werden, außer des besagten PNGs. Du musst also dafür sorgen, dass der <container> all deine Elemente enthält, die du benötigst, um deine Map zu vervollständigen (also Buttons, Rahmen und auch das Map-Plugin). Erst dann solltest du den Container schließen. Guck dir dazu bitte noch einmal mein Beispiel von oben an. Dort wird der <container> erst am Ende mit </laver> geschlossen. Egal ob du mit meinem Bespiel weiter machst oder mit deinem obigen Ansatz, empfiehlt es sich, dass du mit <zorder> die Reihenfolge der Elemente bestimmst. So kann es z.B. sein, dass dein Rahmen das Map-Plugin überdeckt und nicht im Vordergrund steht. Aus der Praxis kann ich dir zusätzlich noch den Tipp geben nur <zorder>-Werte zwischen 0 und 100 zu verwenden, da es unter HTML5 manchmal zu merkwürdigen Phänomenen kommt, da einige Browser mit höheren oder gar negativen Werten schlecht bis gar nicht umgehen können.

Ich hoffe, dass es nun ein bisschen klarer für dich geworden ist. Ansonsten meldest du dich hier bestimmt noch einmal, oder?

12

Sonntag, 20. Januar 2013, 12:06

Da ich weiß, wie hilfreich funktionierende Beispiele sind, hier ein möglicher Ansatz für deine weiteren Experimente. Live sieht das dann so aus.

$this->cacheCode('[php]','<!-- Map -->
<plugin name="map"
url="skin/map.jpg"
align="leftcenter" width="529" height="323" x="0" y="0"
keep="true"
zorder="1"
handcursor="false"
activespotenabled="false"
alpha="1"
visible="true"
scalechildren="true"
onloaded="delayedcall(2.0, hidemenu());"
onover="tween(alpha,1,distance(1,1));"
onout="tween(alpha,1,distance(1,1));" />

<plugin name="closemap" url="skin/closemap.png" keep="true" parent="map" align="leftcenter" edge="leftcenter" x="529" y="0" alpha="1" visible="true" zorder="5" onhover="showtext(Übersichtskarte ausblenden,smalltext2);" onclick="action(hidemenu);" />

<plugin name="openmap" url="skin/openmap.png" keep="true" parent="map" align="leftcenter" edge="leftcenter" x="529" y="0" alpha="0" visible="false" zorder="5" onhover="showtext(Übersichtskarte einblenden,smalltext2);" onclick="action(showmenu);" />

<action name="hidemenu">
tween(plugin[closemap].alpha,0,1,easeoutquad,set(plugin[closemap].visible,false));
set(plugin[openmap].visible,true);
tween(plugin[openmap].alpha,1,1,easeinquad);
tween(plugin[map].x,-529);
</action>

<action name="showmenu">
tween(plugin[openmap].alpha,0,1,easeoutquad,set(plugin[openmap].visible,false));
set(plugin[closemap].visible,true);
tween(plugin[closemap].alpha,1,1,easeinquad);
tween(plugin[map].x,0);
</action>

<textstyle name="smalltext2"
font="Arial" fontsize="16"
border="false" background="false"
textcolor="0xFFFFFF"
effect="glow(0x000000,0.7,4,2);dropshadow(2,45,0x000000,3,1);"
/>')

13

Sonntag, 20. Januar 2013, 14:07

Danke für das Beispiel. Kompliment auch für die Tour. ist klasse.

Allerdings wenn ich den Code eingfüge (Grafikdatei pfad etc angepaßt)

Dann kommt:

FATAL: tour.xml - XML parser error: Unteminated element (#1096)

14

Sonntag, 20. Januar 2013, 14:18

Hast Du diesen Rat befolgt??

Der Container wird unten mit </layer> geschlossen. Ich vermute, dass irgendwo in deiner tour.xml ein ; fehlt. Überprüfen kannst du dein XML mit dem XML Validator .


Öffne die tour.xml einfach einmal z.B. im IE. Wenn Du Glück hast, wird Dir sogar die Zeilennummer Deines Fehler angezeigt oder das Element, das Du nicht geschlossen hast.
Ansonsten, setze einfach mal den kompletten Quelltext der tour.xml hier rein, oder verlinke die tour.xml besser.
Denn: Wie sollen wir Dir helfen, wenn Du uns immer nur Brocken vorlegst?

Gruß
Karsten