Mr. Black
%Europe/Berlin %738 %2007, 17:42
Ha guys.
Ik zit weer eens in de knoop met PV3D. Situatie is als volgt:
- Ik heb 9 MovieClips.
- Deze worden ingeladen, er worden Planes van gemaakt. Dit gebeurt in de Menu3D Class.
- Mijn menu moet ronddraaien / op de muis reageren, dit gebeurt in een MenuController Class.
Tot zover niet veel speciaals. Nu maak ik in de MenuController Class listeners aan voor MOUSE_OVER en MOUSE_OUT:
for ( var i:uint = 0; i < _totalItems; i++ ) // _totalItems is het aantal MovieClips, 9 dus
{
var item:Plane = _menu.getItem( i ); // met deze functie krijg ik een Plane van de Menu3D Class
item.rotationZ = 360 / _totalItems * i;
item.container.addEventListener( MouseEvent.MOUSE_OVER, mouseOverHandler );
item.container.addEventListener( MouseEvent.MOUSE_OUT, mouseOutHandler );
_items.push( item ); // en ik stop de Plane nog in een Array
}
Maar nu komt het vervelende: je kan op een Plane zelf géén listener voor MOUSE_OVER en MOUSE_OUT zetten. Dat gebeurt dus op de container. Nu wil ik in de functie mouseOverHandler de alpha van mijn Sprite veranderen. Geen probleem:
private function mouseOverHandler( event:Event ):void
{
event.currentTarget.alpha = 80;
}
En nu wil ik de functie Material.updateBitmap(); uitvoeren. Enig idee hoe ik vanuit de functie mouseOverHandler() tot het Material van mijn Plane kom?
In het kort:
Op de container van een Plane zet ik een listener. Vanuit de functie die deze aanroept, moet ik refereren naar het Material van mijn Plane.
Alvast bedankt. :)
Ik zit weer eens in de knoop met PV3D. Situatie is als volgt:
- Ik heb 9 MovieClips.
- Deze worden ingeladen, er worden Planes van gemaakt. Dit gebeurt in de Menu3D Class.
- Mijn menu moet ronddraaien / op de muis reageren, dit gebeurt in een MenuController Class.
Tot zover niet veel speciaals. Nu maak ik in de MenuController Class listeners aan voor MOUSE_OVER en MOUSE_OUT:
for ( var i:uint = 0; i < _totalItems; i++ ) // _totalItems is het aantal MovieClips, 9 dus
{
var item:Plane = _menu.getItem( i ); // met deze functie krijg ik een Plane van de Menu3D Class
item.rotationZ = 360 / _totalItems * i;
item.container.addEventListener( MouseEvent.MOUSE_OVER, mouseOverHandler );
item.container.addEventListener( MouseEvent.MOUSE_OUT, mouseOutHandler );
_items.push( item ); // en ik stop de Plane nog in een Array
}
Maar nu komt het vervelende: je kan op een Plane zelf géén listener voor MOUSE_OVER en MOUSE_OUT zetten. Dat gebeurt dus op de container. Nu wil ik in de functie mouseOverHandler de alpha van mijn Sprite veranderen. Geen probleem:
private function mouseOverHandler( event:Event ):void
{
event.currentTarget.alpha = 80;
}
En nu wil ik de functie Material.updateBitmap(); uitvoeren. Enig idee hoe ik vanuit de functie mouseOverHandler() tot het Material van mijn Plane kom?
In het kort:
Op de container van een Plane zet ik een listener. Vanuit de functie die deze aanroept, moet ik refereren naar het Material van mijn Plane.
Alvast bedankt. :)