Yep... that's the problem we're facing. We were able to figure out transparent iframes only to see the 2D map as the background instead of the 3D map as expected.
Any one have any thoughts about how to add a shim for a non-rectangular based control Perhaps a shim for the rounded panels in Atlas (http://atlas.freshlogicstudios.com/)
You won't be able to get non-rectangular regions to shim correctly. The issue is that the new 3D control is a seperate window. All Windowed objects will always draw in front of all windowless elements (like Div's).
The iFrame is an odd beast in that it is a Windowed object and has a Window z-order, but also has a windowless z-order that it obeys. So the shims created for 3D view have a Window z-order in front of the 3D control, but a windowless z-order behind everything else on the page. This effectively punches a rectangular hole through the 3D control, showing what's behind it. Adjusting the transparency on the shim will only affect display of the elements in the page behind the 3D control. There's no way to create non-rectangular regions.
You could make up a non-rectangular region by using multiple rectangular iFrames, but performance would be very poor if there were more than a few.
On viavirtualearth is an article about the issue, my event is fired, but the contextmenu isnt displayed, i will have to use iframes for content overlapping the 3dmap( sh1tsh1tsh1t), because thats the only html element that will be rendered above the map.
I've noticed that displaying a pushpin or route in the 3d mode can take a long time. My oncontextmenu event method does some AJAX calls then plots the point on the map and everything works fine except the pushpin can take about a minute to load.
The issue is it you need set the background of an iframe to transparent.
From Romania -
You have to resolve 2 (two) things:
First, in the main page, where you have the <iframe> tag, add this simple attribute:
allowtransparency="true"
Example:
<iframe name="info" src="main.html" width="561" height="479" scrolling="auto" align="top" frameborder="0" marginwidth="0" marginheight="0" allowtransparency="true"> // some code for browsers who are not able to view the <iframe> tag </iframe>
Second, you have to put the transparency to the pages that should load into the <iframe>, with CSS like this:
<style type="text/css"> <!-- BODY {background:none transparent;}--> </style>
Now how do we go about this with the shim in VE
the first bit is easy but i can't work out how to set the body of the shim....
Yep; you have to build a shim for everything. It is pretty easy to build a single function called AddShim() that adds a shim for any element you create.
The oncontextmenu event isnt fired when im in 3d mode
Rory Clark
Yep... that's the problem we're facing. We were able to figure out transparent iframes only to see the 2D map as the background instead of the 3D map as expected.
The_magament
Any one have any thoughts about how to add a shim for a non-rectangular based control Perhaps a shim for the rounded panels in Atlas (http://atlas.freshlogicstudios.com/)
NetDragonKing
So rectangular windows for now.
In the future maybe there will be a way to generate our toolbars within the 3D environment
John.
JH2609
You won't be able to get non-rectangular regions to shim correctly. The issue is that the new 3D control is a seperate window. All Windowed objects will always draw in front of all windowless elements (like Div's).
The iFrame is an odd beast in that it is a Windowed object and has a Window z-order, but also has a windowless z-order that it obeys. So the shims created for 3D view have a Window z-order in front of the 3D control, but a windowless z-order behind everything else on the page. This effectively punches a rectangular hole through the 3D control, showing what's behind it. Adjusting the transparency on the shim will only affect display of the elements in the page behind the 3D control. There's no way to create non-rectangular regions.
You could make up a non-rectangular region by using multiple rectangular iFrames, but performance would be very poor if there were more than a few.
lascucarachas
Dietz
I've noticed that displaying a pushpin or route in the 3d mode can take a long time. My oncontextmenu event method does some AJAX calls then plots the point on the map and everything works fine except the pushpin can take about a minute to load.
Olle SW
The issue is it you need set the background of an iframe to transparent.
From Romania -
You have to resolve 2 (two) things:
First, in the main page, where you have the <iframe> tag, add this simple attribute:
allowtransparency="true"
Example:
<iframe name="info" src="main.html" width="561" height="479" scrolling="auto" align="top" frameborder="0" marginwidth="0"
marginheight="0" allowtransparency="true">
// some code for browsers who are not able to view the <iframe> tag
</iframe>
Second, you have to put the transparency to the pages that should load into the <iframe>, with CSS like this:
<style type="text/css">
<!-- BODY {background:none transparent;}-->
</style>
Now how do we go about this with the shim in VE
the first bit is easy but i can't work out how to set the body of the shim....
var s = document.createElement("iframe");s.id = sid;
s.frameBorder = "0";
s.style.position = "absolute";
s.style.zIndex = "1"; s.style.top = el.offsetTop;
s.style.left = el.offsetLeft;
s.width = el.offsetWidth;
s.height = el.offsetHeight;
s.allowtransparency = "true";
s.scrolling="no";
s.className="Shim";
el.shimElement = s;
el.parentNode.insertBefore(s, el);
then in css tring:
.Shim BODY {background: none transparent;}
With no luck so far
John.
vbjunkie
Yep; you have to build a shim for everything. It is pretty easy to build a single function called AddShim() that adds a shim for any element you create.
bhavu
ok it does work just change the style to:
.Shim {filter: chroma(color="#FFFFFF");
but guess what it shows the 2d map not the 3d map!! doh!
Not giving up.....
John.