여기에 설정이 있습니다.actionscript 3 자식 내 addchild 및 첫 번째 자식 지우기
기본 타임 라인 내에는 MovieClip 인 메뉴가 있습니다. 이 메뉴는 약 17 개의 "버튼"으로 구성되어 있으며 각 버튼은 사이트의 다른 섹션을 가리 킵니다. "버튼"을 클릭하면 (예 : menu_bag_button, menu_trashbag_button) 메뉴가 움직이며 왼쪽으로 이동하고 2 개의 라이브러리 항목 (bag_container 및 close_btn)이 오른쪽에 모두 "framecontainer"내에 나타나야합니다.
왼쪽에 메뉴가있는 동안이 특정 단추는 메뉴 애니메이션을 반복해서는 안됩니다. 따라서 어떤 프레임이 있는지를 확인하는 if 문을 수행하고 왼쪽에있는 경우 framectaintainer를 지우고 내용을 다시로드합니다.
다른 링크를 클릭하면 두 가지 중 하나를 수행해야합니다. 즉, 메뉴가 중앙에 있고로드 된 내용이없는 경우 메뉴 오른쪽에 애니메이션을 적용하고 내용/close_btn을 "framecontainer"로 변경하십시오. 또는 메뉴가 왼쪽에 있으면 "framecontainer"를 지우고 해당 내용을로드해야합니다. 나는 많은 것들을 시도했지만,이 모든 버튼들은 "menu_mc"내에 있기 때문에, actionscript는 루트를 가리켜 야하고, "framecontainer"를 가리키면 모든 것이 뒤얽힌다.
시간을 들여 코딩하지 않아도되는 빠르고 좋은 방법이 있다면 그것은 최고 일 것입니다 ... 그렇지 않으면 나는 지금이 복잡한 방식을 고수해야합니다.
다음은 현재 코드입니다. 그 뒤에 다른 콘텐츠 여전히 존재, 그것은 분명히 내용이되지 않는다는 사실을 제외하고, 좋은 기능, 그래서 하나가 닫혀 있도록 프레임을로드 계속 :
import flash.display.*;
import fl.transitions.*;
import flash.events.MouseEvent;
//Stopping on this frame (805) so the menu will be in place to interact with
stop();
//framecontainer location/size for the content to be loaded.
//Not sure if the parameters below it are absolutely necessary.
var framecontainer:MovieClip = new MovieClip();
framecontainer.width = 450;
framecontainer.height = 450;
framecontainer.x = 450;
framecontainer.y = 0;
//adding the framecontainer so that the content can be loaded into it.
//again, not sure if this is necessary yet
MovieClip(root).addChild(framecontainer);
//FIRST MENU ITEM, "BAG"
//If we can get the framecontainer to work, I don't think I'll have to create
//a custom closeBtn for each and every link. I'll be able to just use a generic
//closeBtn and have it clear the framecontainer and continue the animation.
var closebagBtn:close_btn = new close_btn();
closebagBtn.x = 0;
closebagBtn.y = 0;
var bagFrame:MovieClip = new bag_frame_mc();
bagFrame.x = 900;
bagFrame.y = 0;
menu_bag_button.addEventListener(MouseEvent.MOUSE_UP, bagClick);
function bagClick(event:MouseEvent):void{
if(MovieClip(root).currentFrame == 850) {
// the next line does nothing, but it's supposed to clear
MovieClip(root).framecontainer.clear();
}
//Below, I need to add bagFrame and closebagBtn into framecontainer,
//but I don't know how. Tried adding ".framecontainer" in front of addchild
//but got error saying that bagClick (function above) is undefined.
else {
MovieClip(root).addChild (bagFrame);
MovieClip(root).addChild (closebagBtn);
MovieClip(root).gotoAndPlay(806);
}
}
closebagBtn.addEventListener(MouseEvent.MOUSE_UP, bagClose);
function bagClose (event:MouseEvent):void{
MovieClip(root).removeChild(bagFrame);
MovieClip(root).removeChild(closebagBtn);
MovieClip(root).gotoAndPlay(850);
}
//SECOND MENU ITEM, "TRASHBAG"
var closetrashbagBtn:close_btn = new close_btn();
closetrashbagBtn.x = 0;
closetrashbagBtn.y = 0;
var trashbagFrame:MovieClip = new trashbag_frame_mc();
trashbagFrame.x = 900;
trashbagFrame.y = 0;
menu_trashbag_button.addEventListener(MouseEvent.MOUSE_UP, trashbagClick);
function trashbagClick(event:MouseEvent):void{
if(MovieClip(root).currentFrame == 850) {
// the next line does nothing, but it's supposed to clear
MovieClip(root).framecontainer.clear();
}
//Below, I need to add trashbagFrame and closebagBtn into framecontainer,
//but I don't know how. Tried adding ".framecontainer" in front of addchild
//but got error saying that bagClick (function above) is undefined.
else {
}
else {
MovieClip(root).addChild (trashbagFrame);
MovieClip(root).addChild (closetrashbagBtn);
MovieClip(root).gotoAndPlay(806);
}
}
closetrashbagBtn.addEventListener(MouseEvent.MOUSE_UP, trashbagClose);
function trashbagClose (event:MouseEvent):void{
MovieClip(root).removeChild(trashbagFrame);
MovieClip(root).removeChild(closetrashbagBtn);
MovieClip(root).gotoAndPlay(850);
}
가 /////// /////////////////////////////////////////////////////////////////// ///// 새로운, 기능 코드 (도움이 필요 정제) : 모든
import flash.display.*;
import fl.transitions.*;
import flash.events.MouseEvent;
stop();
var menuList:Array = [menu_bag, menu_chips, menu_coke, menu_cup, menu_deodorant, menu_fork, menu_knife, menu_lighter, menu_milk, menu_pill, menu_rings, menu_shampoo, menu_spoon, menu_straw, menu_toothbrush, menu_trashbag, menu_water];
var closeBtn:close_btn = new close_btn();
closeBtn.x = 0;
closeBtn.y = 0;
closeBtn.addEventListener(MouseEvent.MOUSE_UP, contentClose);
function contentClose (event:MouseEvent):void{
while(MovieClip(root).numChildren > 1)
{
MovieClip(root).removeChild(MovieClip(root).getChildAt(MovieClip(root).numChildren - 1));
}
MovieClip(root).gotoAndPlay(850);
}
var bagFrame:MovieClip = new bag_frame_mc();
bagFrame.x = 900;
bagFrame.y = 0;
menu_bag.addEventListener(MouseEvent.MOUSE_UP, bagClick);
function bagClick(event:MouseEvent):void{
if(MovieClip(root).currentFrame == 850) {
while(MovieClip(root).numChildren > 1)
{
MovieClip(root).removeChild(MovieClip(root).getChildAt(MovieClip(root).numChildren - 1));
}
MovieClip(root).addChild (bagFrame);
MovieClip(root).addChild (closeBtn);
}
else {
MovieClip(root).addChild (bagFrame);
MovieClip(root).addChild (closeBtn);
MovieClip(root).gotoAndPlay(806);
}
}
var trashbagFrame:MovieClip = new trashbag_frame_mc();
trashbagFrame.x = 900;
trashbagFrame.y = 0;
menu_trashbag.addEventListener(MouseEvent.MOUSE_UP, trashbagClick);
function trashbagClick(event:MouseEvent):void{
if(MovieClip(root).currentFrame == 850) {
while(MovieClip(root).numChildren > 1)
{
MovieClip(root).removeChild(MovieClip(root).getChildAt(MovieClip(root).numChildren - 1));
}
MovieClip(root).addChild (trashbagFrame);
MovieClip(root).addChild (closeBtn);
}
else {
MovieClip(root).addChild (trashbagFrame);
MovieClip(root).addChild (closeBtn);
MovieClip(root).gotoAndPlay(806);
}
}
"작동하지 않는다"는 것이 정확히 무엇을 의미합니까? 오류/예외가 발생 했습니까? 그렇다면 무엇을 말 했는가? – Amarghosh
질문 당 한 가지만 물어보십시오. 그리고 한 번에 한 가지 문제를 해결하려고 노력하는 것이 당신의 온건함에 좋을 것입니다. 원하는만큼 많은 다른 질문을하십시오. 그러나 각 질문을 집중하면 더 나은 대답을 얻을 수 있습니다. –
내가 막연했다는 것이 유감입니다 ... 저는이 문제에 대해 아주 새로운 질문을 던지기 때문에 정확히 어떻게 해야할지 모르겠습니다. 나는 그것을 약간 편집 할 것이다 – steve