【发布时间】:2011-03-02 15:21:06
【问题描述】:
我在类之间传递变量时遇到了问题。
我有一个名为 GlobeView.as 的类
其中是一个旨在为地球添加标记的函数
GlobeView.as -
public function addAdventureMarker( latitude:Number, longitude:Number, name:String=null ):void
{
var marker:Marker = new Marker();
marker.name = name;
placeMarker( marker, latitude, longitude );
}
此函数创建一个名为 Marker 的类的新实例。在 Marker.as 中有一个函数可以定义标记的颜色
Marker.as -
public function Marker()
{
super();
var frontMaterial:ColorMaterial = new ColorMaterial( 0xff7200, 1, true );
var backMaterial:ColorMaterial = new ColorMaterial( 0xff7200, 1, true );
var leftMaterial:ColorMaterial = new ColorMaterial( 0xff6100, 1, true );
var rightMaterial:ColorMaterial = new ColorMaterial( 0xff6100, 1, true );
var topMaterial:ColorMaterial = new ColorMaterial( 0xff4f00, 1, true );
var bottomMaterial:ColorMaterial = new ColorMaterial( 0xff4f00, 1, true );
var materials:MaterialsList = new MaterialsList( { front:frontMaterial, back:backMaterial, left:leftMaterial, right:rightMaterial, top:topMaterial, bottom:bottomMaterial } );
cube = new Cube( materials, width, depth, height );
cube.addEventListener( InteractiveScene3DEvent.OBJECT_OVER, onCubeOver, false, 0, true );
cube.addEventListener( InteractiveScene3DEvent.OBJECT_OUT, onCubeOut, false, 0, true );
cube.addEventListener( InteractiveScene3DEvent.OBJECT_CLICK, onCubeClick, false, 0, true );
cube.geometry.vertices[0].x -= 4;
cube.geometry.vertices[0].y += 4;
cube.geometry.vertices[1].x -= 4;
cube.geometry.vertices[1].y -= 4;
cube.geometry.vertices[2].x += 4;
cube.geometry.vertices[2].y += 4;
cube.geometry.vertices[3].x += 4;
cube.geometry.vertices[3].y -= 4;
addChild( cube );
cube.moveBackward( depth / 2 );
}
我要做的是在 GlobeView.as 中定义一个变量 例如var markerColor:String;
添加标记时,给变量一个值 例如
{
var marker:Marker = new Marker();
marker.name = name;
markerColor = "red";
placeMarker( marker, latitude, longitude );
}
然后在标记类中添加 if 语句
例如
public function Marker()
{
super();
if (markerColor=="red")
{
var frontMaterial:ColorMaterial = new ColorMaterial( 0xff7200, 1, true );
var backMaterial:ColorMaterial = new ColorMaterial( 0xff7200, 1, true );
var leftMaterial:ColorMaterial = new ColorMaterial( 0xff6100, 1, true );
var rightMaterial:ColorMaterial = new ColorMaterial( 0xff6100, 1, true );
var topMaterial:ColorMaterial = new ColorMaterial( 0xff4f00, 1, true );
var bottomMaterial:ColorMaterial = new ColorMaterial( 0xff4f00, 1, true );
}
我希望这是有道理的 - 可能比它需要的复杂得多
【问题讨论】:
标签: flash actionscript-3 class variables