Actionscript 3 如何使用actionscript 3隐藏除特定片段之外的所有子片段
如何隐藏除使用actionscript 3的特定片段之外的所有子片段 非常感谢你的帮助Actionscript 3 如何使用actionscript 3隐藏除特定片段之外的所有子片段,actionscript-3,Actionscript 3,如何隐藏除使用actionscript 3的特定片段之外的所有子片段 非常感谢你的帮助 for (var i:int = clip.numChildren - 1; i >= 0; i--) { clip.getChildAt(i).visible = false; } 在这个链接上可以找到:这里有一个我制作的方法,可以让事情变得更简单。您可能希望对其进行打包,因为它的代码相当多,但好处是它可以重用: Main.as(文档类): package { import fla
for (var i:int = clip.numChildren - 1; i >= 0; i--) {
clip.getChildAt(i).visible = false;
}
在这个链接上可以找到:这里有一个我制作的方法,可以让事情变得更简单。您可能希望对其进行打包,因为它的代码相当多,但好处是它可以重用: Main.as(文档类):
package
{
import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}// end function
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// create a display object container then add 10
// child display objects.
var displayObjectContainer:Sprite = new Sprite();
for (var i:int = 0; i < 10; i++)
{
var displayObject:Sprite = new Sprite();
displayObject.name = "displayObject" + i;
displayObjectContainer.addChild(displayObject);
}// end for
// examples :
// hideAllDOInDOC(displayObjectContainer, exceptDisplayObjects:String);
/*
hideAllDOInDOC(displayObjectContainer, "displayObject8");
var displayObject1:DisplayObject =
displayObjectContainer.getChildByName("displayObject1");
var displayObject8:DisplayObject =
displayObjectContainer.getChildByName("displayObject8");
trace(displayObject1.visible); // output: false
trace(displayObject8.visible); // output: true
*/
// hideAllDOInDOC(displayObjectContainer, exceptDisplayObjects:int);
/*
hideAllDOInDOC(displayObjectContainer, 7);
var displayObject2:DisplayObject =
displayObjectContainer.getChildAt(2);
var displayObject7:DisplayObject =
displayObjectContainer.getChildAt(7);
trace(displayObject2.visible); // output: false
trace(displayObject7.visible); // output: true
*/
// hideAllDOInDOC(displayObjectContainer, exceptDisplayObjects:Vector.<String>);
hideAllDOInDOC(displayObjectContainer,
Vector.<String>(["displayObject4", "displayObject6"]));
var displayObject2:DisplayObject =
displayObjectContainer.getChildByName("displayObject2");
var displayObject4:DisplayObject =
displayObjectContainer.getChildByName("displayObject4");
var displayObject6:DisplayObject =
displayObjectContainer.getChildByName("displayObject6");
trace(displayObject2.visible); // output: false
trace(displayObject4.visible); // output: true
trace(displayObject6.visible); // output: true
// hideAllDOInDOC(displayObjectContainer, exceptDisplayObjects:Vector.<int>);
/*
hideAllDOInDOC(displayObjectContainer,
Vector.<int>([4, 6]));
var displayObject2:DisplayObject =
displayObjectContainer.getChildAt(2);
var displayObject4:DisplayObject =
displayObjectContainer.getChildAt(4);
var displayObject6:DisplayObject =
displayObjectContainer.getChildAt(6);
trace(displayObject2.visible); // output: false
trace(displayObject4.visible); // output: true
trace(displayObject6.visible); // output: true
*/
}// end function
// hideAll display objects in display object container
private function hideAllDOInDOC(displayObjectContainer:DisplayObjectContainer,
exceptDisplayObjects:Object):void
{
// if exceptDisplayObjects parameter is not of type
// String, int, Vector.<String> or Vector.<int> then
// throw ArgumentError
if (!(exceptDisplayObjects is String) &&
!(exceptDisplayObjects is int) &&
!(exceptDisplayObjects is Vector.<String>) &&
!(exceptDisplayObjects is Vector.<int>))
{
throw new ArgumentError(
"exceptDisplayObjects parameter must be either type String, int, Vector.<String> or Vector.<int>")
}// end if
// loop through display object container's children
for (var i:int = 0; i < displayObjectContainer.numChildren; i++)
{
var displayObject:DisplayObject = displayObjectContainer.getChildAt(i);
displayObject.visible = false; // hide display object
if (exceptDisplayObjects is String)
{
// reveal display object if it's name is the same as
// exceptDisplayObjects string value
if (displayObject.name == (exceptDisplayObjects as String))
{
displayObject.visible = true;
}// end if
}
else if(exceptDisplayObjects is int)
{
// reveal display object if it's index(i) is the same as
// exceptDisplayObjects integar value
if (i == (exceptDisplayObjects as int))
{
displayObject.visible = true;
}// end if
}
else
{
if(exceptDisplayObjects is Vector.<String>)
{
for (var j:int = 0; j < (exceptDisplayObjects as Vector.<String>).length; j++)
{
// reveal display object if it's name is the same as
// exceptDisplayObjects[j] string value
if (displayObject.name == (exceptDisplayObjects[j] as String))
{
displayObject.visible = true;
}// end if
}// end for
}
else if(exceptDisplayObjects is Vector.<int>)
{
for (var k:int = 0; k < (exceptDisplayObjects as Vector.<int>).length; k++)
{
// reveal display object if it's index(i) is the same as
// exceptDisplayObjects[k] integar value
if (i == (exceptDisplayObjects[k] as int))
{
displayObject.visible = true;
}// end if
}// end for
}// end else if
}// end
}// end for
}// end function
}// end class
}// end package
是的,伙计,我在这里找到了一个解决办法:;)这难道不是隐藏了一切,而不是一个具体的问题吗?对于被否决的选民来说,有可能找到我的答案被否决的原因吗?
hideAllDOInDOC(displayObjectContainer, "displayObject8");
hideAllDOInDOC(displayObjectContainer, 7);
hideAllDOInDOC(displayObjectContainer,
Vector.<String>(["displayObject4", "displayObject6"]));
hideAllDOInDOC(displayObjectContainer,
Vector.<int>([4, 6]));