DisplayObject must be a child of the caller.
I am trying to remove the existing childs (combobox and pods are the content in the page) using
viewStack.selectedChild.removeAllChildren();
in a tab click from the Viewstacks canvas.
then I am trying to add new child.
it gives this error.
The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/getChildIndex()
at mx.core::Container/setChildIndex()[C:\autobuild\3.2.0\frameworks\projects\framework\src\m x\core\Container.as:2449]
Please help me to fix this
private function onApplicationComplete():void{
var arrView:Array =new Array();arrView=viewStack.getChildren();
viewLength=arrView.length;
// Load pods.xml, which contains the pod layout.
var httpService:HTTPService = new HTTPService();httpService.url =
"data/pods.xml";httpService.resultFormat =
"e4x";httpService.addEventListener(FaultEvent.FAULT, onFaultHttpService);
httpService.addEventListener(ResultEvent.RESULT, onResultHttpService);
httpService.send();
private function onFaultHttpService(e:FaultEvent):void{
Alert.show(
"Unable to load data/pods.xml.");}
public var viewXMLList:XMLList =new XMLList();
private function onResultHttpService(e:ResultEvent):void{
viewXMLList = e.result.view;
var podcontentbase:PodContentBase=new PodContentBase;
var containerWindowManagerHash:Object = new Object();
var len:Number = viewXMLList.length();
if (podLayoutManagers.length!=0)podLayoutManagers.splice(0,podLayoutManagers.length);
for (var i:Number = 0; i < len; i++) // Loop through the view nodes.{
// Create a canvas for each view node.
var canvas:Canvas = new Canvas();
// PodLayoutManager handles resize and should prevent the need for
// scroll bars so turn them off so they aren't visible during resizes.canvas.horizontalScrollPolicy =
"off";canvas.verticalScrollPolicy =
"off";canvas.label = viewXMLList[i].@label;
canvas.percentWidth = 100;
canvas.percentHeight = 100;
viewStack.addChild(canvas);
traceDL(viewStack);
// Create a manager for each view.
var manager:PodLayoutManager = new PodLayoutManager();manager.container = canvas;
manager.id = viewXMLList[i].@id;
manager.addEventListener(LayoutChangeEvent.UPDATE, StateManager.setPodLayout);
// Store the pod xml data. Used when view is first made visible.podDataDictionary[manager] = viewXMLList[i].pod;
//podcontentbase.podDataDictionarycopy[manager] = viewXMLList[i].pod;
podLayoutManagers.push(manager);
onchange();
private function onchange():void{
tabBar.dataProvider=viewStack;
var index:Number = StateManager.getViewIndex();
// Make sure the index is not out of range.
// This can happen if a tab view was saved but then tabs were subsequently removed from the XML.index = Math.min(tabBar.numChildren - 1, index);
onItemClickTabBar(
new ItemClickEvent(ItemClickEvent.ITEM_CLICK, false, false, null, index));tabBar.selectedIndex = index;
private var indextab:Number;
private function onItemClickTabBar(e:ItemClickEvent):void{
indextab = e.index;
StateManager.setViewIndex(indextab);
// Save the view index.viewStack.selectedIndex = indextab;
if( this.contains( viewStack.selectedChild) )viewStack.selectedChild.removeAllChildren();
traceDL(
this);
Similar Messages
-
Evenin' all.
I'm creating a Flash application split up into scenes. One of the scenes is divided into sections of ten frames with keyframes at 1 (home, 10, 20, 30, 40, 50, 60, 70, 80 and 90. Frame #1 is the menu and contains the buttons to skip to each section using the gotoAndStop(); command.
However, I want to be able to skip to #1 from any point using Next/Previous buttons. I have declared the buttons in frame 1 of scene 1 as follows:
I have declared the buttons in frame 1 of scene 1 as follows:
Code:
var nextButton:Button = new Button();
var prevButton:Button = new Button();
var homeButton:Button = new Button();
At each point, I use addChild(nextButton) to add the buttons to the stage, and when the buttons are clicked it removes them as follows:
Code:
nextButton.addEventListener(MouseEvent.CLICK, goNext);
function goNext(e:Event):void
removeChild(videoPlayer);
removeChild(prevButton);
removeChild(nextButton);
removeChild(homeButton);
gotoAndStop(20);
Now, all the 'Next' buttons work but none of the 'Previous' buttons work, when all they do is gotoAndStop() ten frames backwards rather than ten frames forwards, I keep getting this error message:
Code:
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/removeChild()
at Prototype_fla::MainTimeline/goBack()
The same is happening with the Home buttons, which skip from whichever frame the user is on to the menu. The Next buttons are the only ones working consistently.
Please help, this is really stressing me out, I'm on Flash CS4.
CheersYou can`t remove the target of your event while it is "active"
you wrote....
nextButton.addEventListener(MouseEvent.CLICK, goNext);
function goNext(e:Event):void
removeChild(videoPlayer);
removeChild(prevButton);
removeChild(nextButton);
removeChild(homeButton);
gotoAndStop(20);
instead you should write sth. like:
nextButton.addEventListener(MouseEvent.CLICK, goNext);
function goNext(e:Event):void
// to be sure that there`s actualloy sth. to remove
if(videoPlayer!=null){
removeChild(videoPlayer);
//similar
removeChild(prevButton);
removeChild(homeButton);
e.currentTarget.removeEventListener(MouseEvent.CLICK, goNext)
removeChild(e.currentTarget);
gotoAndStop(20);
this is probably similar in your other function, too -
Error #2025: The supplied DisplayObject must be a child of the caller.
Hi All,
I would very much appreciate any help with this.
I am working on a flash piece that will play 4 videos, depending on the button pressed. First button will launch first video, 2nd - 2nd video and so on. Once the Video is done playing, close_btn, learn_more_btn and replay_btn appear, in addition to an ending image that is different for each of the videos( BoxLivePic, BoxSleepPic and BoxFeelPic). So - actually 4 things appear once the movie stops playing and the last image depends on which buttons was clicked...
My issue is, when I click the close button( andI'm sure same will apply for the other 2 buttons), I get the error below:
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/removeChild()
at AER1_r5_fla::MainTimeline/closeVideo()
I understand is that it's because each Picture is not actually added to the display list, unless the proper button was clicked.. however, I don't know how to fix that! I hope this makes some sence - Below is all of my Code... Thanks a bunch in advance:
import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.easing.CustomEase;
import com.greensock.loading.VideoLoader;
import flash.display.Sprite;
import com.greensock.events.LoaderEvent;
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.events.MouseEvent;
//Last Buttons Variables
var close_btn:Button_close = new Button_close();
var learn_more_btn:Button_learn_more = new Button_learn_more();
var replay_btn:Button_replay = new Button_replay();
//Last Pic Variables
var BoxLivePic:Box_Live_Pic = new Box_Live_Pic();
var BoxFeelPic:Box_Feel_Pic = new Box_Feel_Pic();
var BoxSleepPic:Box_Sleep_Pic = new Box_Sleep_Pic();
// Video Variables
var Video_Breathe:VideoLoader = new VideoLoader("Breathe_Video.f4v",{container:this,
x:0, y:0});
var Video_Live:VideoLoader = new VideoLoader("Live_Video.f4v",{conainer:this,
x:0, y:0});
var Video_Sleep:VideoLoader = new VideoLoader("Sleep_Video.f4v",{conainer:this,
x:0, y:0});
var Video_Feel:VideoLoader = new VideoLoader("Feel_Video.f4v",{conainer:this,
x:0, y:0});
// Video complete Event Listeners
Video_Breathe.addEventListener(VideoLoader.VIDEO_COMPLETE, donePlaying_breathe);
Video_Live.addEventListener(VideoLoader.VIDEO_COMPLETE, donePlaying_live);
Video_Sleep.addEventListener(VideoLoader.VIDEO_COMPLETE, donePlaying_sleep);
Video_Feel.addEventListener(VideoLoader.VIDEO_COMPLETE, donePlaying_feel);
OverwriteManager.init(OverwriteManager.AUTO);
//Buttons Invisible
breathe_mc.learn_btn.visible = false;
breathe_mc.video_btn.visible = false;
live_mc.learn_btn.visible = false;
live_mc.video_btn.visible = false;
sleep_mc.learn_btn.visible = false;
sleep_mc.video_btn.visible = false;
feel_mc.learn_btn.visible = false;
feel_mc.video_btn.visible = false;
//Custom Eases
CustomEase.create("myCustomEase", [{s:0,cp:1.14999,e:1.4},{s:1.4,cp:1.65,e:1}]);
CustomEase.create("myCustomEase2",[{s:0,cp:0.97,e:1.22},{s:1.22,cp:1.47,e:1}]);
var timeline:TimelineLite = new TimelineLite({onComplete:showBreathe});
addChild(removeChild(better_mc));
TweenLite.to(better_mc,2,{alpha:1, y:186.6,ease:Bounce.easeOut});
timeline.appendMultiple([
TweenLite.to(breathe_mc, 1, {alpha:1,y:117,ease:CustomEase.byName("myCustomEase2")}),
TweenLite.to(live_mc, 1, {alpha:1,y:117, y:37, ease:CustomEase.byName("myCustomEase2")}),
TweenLite.to(sleep_mc, 1, {alpha:1,y:77, ease:CustomEase.byName("myCustomEase2")}),
TweenLite.to(feel_mc, 1, {alpha:1,y:77, ease:CustomEase.byName("myCustomEase2")})],1,TweenAlign.START, .2);
function showBreathe():void
breathe_mc.learn_btn.visible = true;
breathe_mc.video_btn.visible = true;
TweenLite.to(breathe_mc.learn_btn, .5, {alpha:1});
TweenLite.to(breathe_mc.video_btn, .5, {alpha:1});
TweenLite.to(breathe_mc, 1, {y:77, ease:CustomEase.byName("myCustomEase")});
//Show Text
TweenLite.to(breathe_txt_mc, 1,{alpha:1});
//Event Listeners
breathe_mc.addEventListener(MouseEvent.MOUSE_OVER, breatheOpen);
live_mc.addEventListener(MouseEvent.MOUSE_OVER, liveOpen);
sleep_mc.addEventListener(MouseEvent.MOUSE_OVER, sleepOpen);
feel_mc.addEventListener(MouseEvent.MOUSE_OVER, feelOpen);
//Event Listeners for Playing Video
breathe_mc.video_btn.addEventListener(MouseEvent.MOUSE_DOWN, breathe_play_video);
live_mc.video_btn.addEventListener(MouseEvent.MOUSE_DOWN, live_play_video);
sleep_mc.video_btn.addEventListener(MouseEvent.MOUSE_DOWN, sleep_play_video);
feel_mc.video_btn.addEventListener(MouseEvent.MOUSE_DOWN, feel_play_video);
// Event Listener for Close Video
close_btn.addEventListener(MouseEvent.MOUSE_DOWN, closeVideo);
//Functions for VIDEO and LEARN MORE buttons
function breathe_play_video(event:MouseEvent):void {
Video_Breathe.load();
this.addChild(Video_Breathe.content);
function live_play_video(event:MouseEvent):void {
Video_Live.load();
this.addChild(Video_Live.content);
function sleep_play_video(event:MouseEvent):void {
Video_Sleep.load();
this.addChild(Video_Sleep.content);
function feel_play_video(event:MouseEvent):void {
Video_Feel.load();
this.addChild(Video_Feel.content);
function closeVideo(event:MouseEvent):void {
Video_Breathe.unload();
Video_Sleep.unload();
Video_Feel.unload();
Video_Live.unload();
removeChild(close_btn);
removeChild(learn_more_btn);
removeChild(replay_btn);
removeChild(BoxLivePic);
removeChild(BoxSleepPic);
//removeChild(BoxFeelPic);
// Last Breathe Buttons Added to Stage
function donePlaying_breathe(e:Event):void {
addChild(close_btn);
addChild(learn_more_btn);
addChild(replay_btn)
close_btn.x = 313;
close_btn.y = 183;
learn_more_btn.x = 434;
learn_more_btn.y = 183;
replay_btn.x = 554;
replay_btn.y = 183;
// Last Live Buttons
function donePlaying_live(e:Event):void {
addChild(BoxLivePic);
addChild(close_btn);
addChild(learn_more_btn);
addChild(replay_btn)
close_btn.x = 43;
close_btn.y = 183;
learn_more_btn.x = 164;
learn_more_btn.y = 183;
replay_btn.x = 284;
replay_btn.y = 183;
// Last Sleep Buttons
function donePlaying_sleep(e:Event):void {
addChild(BoxSleepPic);
addChild(close_btn);
addChild(learn_more_btn);
addChild(replay_btn)
close_btn.x = 313;
close_btn.y = 183;
learn_more_btn.x = 434;
learn_more_btn.y = 183;
replay_btn.x = 554;
replay_btn.y = 183;
//Last Feel Buttons
function donePlaying_feel(e:Event):void {
addChild(BoxFeelPic);
addChild(close_btn);
addChild(learn_more_btn);
addChild(replay_btn)
close_btn.x = 313;
close_btn.y = 183;
learn_more_btn.x = 434;
learn_more_btn.y = 183;
replay_btn.x = 554;
replay_btn.y = 183;
// Functions Breathe
function breatheOpen(event:MouseEvent):void
TweenLite.to(breathe_mc, 1, {y:77, ease:Elastic.easeOut});
TweenLite.to(breathe_mc.learn_btn, .5, {alpha:1});
TweenLite.to(breathe_mc.video_btn, .5, {alpha:1});
//Close Live
TweenLite.to(live_mc, 1, {y:117, ease:Elastic.easeOut});
TweenLite.to(live_mc.learn_btn, .5, {alpha:0});
TweenLite.to(live_mc.video_btn, .5, {alpha:0});
//Close Sleep
TweenLite.to(sleep_mc, 1, {y:77, ease:Elastic.easeOut});
TweenLite.to(sleep_mc.learn_btn, .5, {alpha:0});
TweenLite.to(sleep_mc.video_btn, .5, {alpha:0});
//Close Feel
TweenLite.to(feel_mc, 1, {y:77, ease:Elastic.easeOut});
TweenLite.to(feel_mc.learn_btn, .5, {alpha:0});
TweenLite.to(feel_mc.video_btn, .5, {alpha:0});
//Show Pic
TweenLite.to(pic_breathe_mc, .5, {alpha:1});
//Hide Other Pics
TweenLite.to(pic_live_mc, .5, {alpha:0});
TweenLite.to(pic_sleep_mc, .5, {alpha:0});
TweenLite.to(pic_feel_mc, .5, {alpha:0});
//Show Text
TweenLite.to(breathe_txt_mc, 1,{alpha:1});
//Hide Other Text
TweenLite.to(live_txt_mc, 1,{alpha:0});
TweenLite.to(sleep_txt_mc, 1,{alpha:0});
TweenLite.to(feel_txt_mc, 1,{alpha:0});
// Functions live
function liveOpen(event:MouseEvent):void
TweenLite.to(live_mc, 1, {y:77, ease:Elastic.easeOut});
live_mc.learn_btn.visible = true;
live_mc.video_btn.visible = true;
TweenLite.to(live_mc.learn_btn, .5, {alpha:1});
TweenLite.to(live_mc.video_btn, .5, {alpha:1});
//Close Breathe
TweenLite.to(breathe_mc, 1, {y:117, ease:Elastic.easeOut});
TweenLite.to(breathe_mc.learn_btn, .5, {alpha:0});
TweenLite.to(breathe_mc.video_btn, .5, {alpha:0});
//Close Sleep
TweenLite.to(sleep_mc, 1, {y:77, ease:Elastic.easeOut});
TweenLite.to(sleep_mc.learn_btn, .5, {alpha:0});
TweenLite.to(sleep_mc.video_btn, .5, {alpha:0});
//Close Feel
TweenLite.to(feel_mc, 1, {y:77, ease:Elastic.easeOut});
TweenLite.to(feel_mc.learn_btn, .5, {alpha:0});
TweenLite.to(feel_mc.video_btn, .5, {alpha:0});
//Show Pic
TweenLite.to(pic_live_mc, .5, {alpha:1});
//Hide Other Pics
TweenLite.to(pic_sleep_mc, .5, {alpha:0});
TweenLite.to(pic_feel_mc, .5, {alpha:0});
//Show Text
TweenLite.to(live_txt_mc, 1,{alpha:1});
//Hide Other Text
TweenLite.to(breathe_txt_mc, 1,{alpha:0});
TweenLite.to(sleep_txt_mc, 1,{alpha:0});
TweenLite.to(feel_txt_mc, 1,{alpha:0});
// Functions sleep
function sleepOpen(event:MouseEvent):void
TweenLite.to(sleep_mc, 1, {y:37, ease:Elastic.easeOut});
sleep_mc.learn_btn.visible = true;
sleep_mc.video_btn.visible = true;
TweenLite.to(sleep_mc.learn_btn, .5, {alpha:1});
TweenLite.to(sleep_mc.video_btn, .5, {alpha:1});
//Close Breathe
TweenLite.to(breathe_mc, 1, {y:117, ease:Elastic.easeOut});
TweenLite.to(breathe_mc.learn_btn, .5, {alpha:0});
TweenLite.to(breathe_mc.video_btn, .5, {alpha:0});
//Close Live
TweenLite.to(live_mc, 1, {y:117, ease:Elastic.easeOut});
TweenLite.to(live_mc.learn_btn, .5, {alpha:0});
TweenLite.to(live_mc.video_btn, .5, {alpha:0});
//Close Feel
TweenLite.to(feel_mc, 1, {y:77, ease:Elastic.easeOut});
TweenLite.to(feel_mc.learn_btn, .5, {alpha:0});
TweenLite.to(feel_mc.video_btn, .5, {alpha:0});
//Show Pic
TweenLite.to(pic_sleep_mc, .5, {alpha:1});
//Hide Other Pics
TweenLite.to(pic_feel_mc, .5, {alpha:0});
//Show Text
TweenLite.to(sleep_txt_mc, 1,{alpha:1});
//Hide Other Text
TweenLite.to(live_txt_mc, 1,{alpha:0});
TweenLite.to(breathe_txt_mc, 1,{alpha:0});
TweenLite.to(feel_txt_mc, 1,{alpha:0});
// Functions feel
function feelOpen(event:MouseEvent):void
TweenLite.to(feel_mc, 1, {y:37, ease:Elastic.easeOut});
feel_mc.learn_btn.visible = true;
feel_mc.video_btn.visible = true;
TweenLite.to(feel_mc.learn_btn, .5, {alpha:1});
TweenLite.to(feel_mc.video_btn, .5, {alpha:1});
//Close Breathe
TweenLite.to(breathe_mc, 1, {y:117, ease:Elastic.easeOut});
TweenLite.to(breathe_mc.learn_btn, .5, {alpha:0});
TweenLite.to(breathe_mc.video_btn, .5, {alpha:0});
//Close Live
TweenLite.to(live_mc, 1, {y:117, ease:Elastic.easeOut});
TweenLite.to(live_mc.learn_btn, .5, {alpha:0});
TweenLite.to(live_mc.video_btn, .5, {alpha:0});
//Close Sleep
TweenLite.to(sleep_mc, 1, {y:77, ease:Elastic.easeOut});
TweenLite.to(sleep_mc.learn_btn, .5, {alpha:0});
TweenLite.to(sleep_mc.video_btn, .5, {alpha:0});
//Show Pic
TweenLite.to(pic_feel_mc, .5, {alpha:1});
//Show Text
TweenLite.to(feel_txt_mc, 1,{alpha:1});
//Hide Other Text
TweenLite.to(live_txt_mc, 1,{alpha:0});
TweenLite.to(sleep_txt_mc, 1,{alpha:0});
TweenLite.to(breathe_txt_mc, 1,{alpha:0});This error means that you are trying to access an object on display list that (object) is not there.
For example, if close_btn instance is not added as child, the following line will throw this error:
removeChild(close_btn);
One of the ways to remedy this is to confirm that the object is added:
if(contains(close_btn)) removeChild(close_btn); -
Unexplainable exception: "The supplied DisplayObject must be a child of the caller"
What am I missing in the following code? How is the indicated exception possible? It seems to me that it simply "can't happen", yet it reliably does.
I'm checking to see if a component is a child of "this", and if it is, I attempt to remove that child. The remove faults. Any thoughts?
if (tf != null && this.contains(tf) == true)
this.removeChild(tf); // Generates exception "The supplied DisplayObject must be a child of the caller"
tf=null;Check out the documentation for contains(). I suspect that tf isn't actually a child of this, but rather a grand child, or great grand child, ... .
-
Hi guys, I'm pretty new to as3 and I'm trying to make a game where the player supposedly clicks on the stage and 3 towers which I've spawned dynamically should shoot towards the area. Everything works in terms of tower rotation, etc, but the bullets will not be removed from the stage when I exit the level into another scene. The boundary checking is fine, too.
Here's a part of the code in the Main.as file.
private function clickTower1(e:MouseEvent):void
for each (var tower1:mcTower1 in tower1Array)
var newLaser1:mcLaser1 = new mcLaser1();
newLaser1.rotation = tower1.rotation;
newLaser1.x = tower1.x + Math.cos(newLaser1.rotation * Math.PI / 180) * 40;
newLaser1.y = tower1.y + Math.sin(newLaser1.rotation * Math.PI / 180) * 40;
newLaser1.addEventListener(Event.ENTER_FRAME, laser1Handler);
tower1BulletArray.push(newLaser1); stage.addChild(newLaser1);
private function laser1Handler(e:Event):void
//Make laser move in direction of turret.
var newLaser1:MovieClip = e.currentTarget as MovieClip;
newLaser1.x += Math.cos(newLaser1.rotation * Math.PI / 180) * laser1Speed;
newLaser1.y += Math.sin(newLaser1.rotation * Math.PI / 180) * laser1Speed;
//Boundary checking if (newLaser1.x < -50 || newLaser1.x > 800 || newLaser1.y > 600 || newLaser1.y < -50)
newLaser1.removeEventListener(Event.ENTER_FRAME, laser1Handler); stage.removeChild(newLaser1);
tower1BulletArray.splice(0, 1);
I have a function called exitLevel, which basically, as the name states, exits the level when a button is clicked. It worked perfectly before I started coding the bullets.
private function exitLevel(e:MouseEvent):void
stage.frameRate = 6;
gamePaused = false;
clearLevel();
gotoAndStop(1, 'exitLevel');
btnExitLevel.addEventListener(MouseEvent.CLICK, levelSelect1);
private function clearLevel():void
stage.removeEventListener(Event.ENTER_FRAME, update);
stage.removeChild(buttonCreep1); stage.removeChild(buttonCreep2);
for (var i = creep1Array.length - 1; i >= 0; i--)
removeChild(creep1Array[i]);
creep1Array.splice(i, 1);
//trace ("Creep1 Removed");
for (var j = creep2Array.length - 1; j >= 0; j--)
removeChild(creep2Array[j]);
creep2Array.splice(j, 1);
//trace ("Creep2 Removed");
for (var k = tower1Array.length - 1; k >= 0; k--)
removeChild(tower1Array[k]); tower1Array.splice(k, 1);
for (var l = tower1BulletArray.length - 1; l >= 0; l--)
stage.removeChild(tower1BulletArray[l]);
tower1BulletArray.splice(0, 1);
After debugging, it says the error is at the end, where i try to remove the child from the stage. What is wrong? Sorry, I'm a beginner at as3 so any answers might have to be spoonfeeding... I'll try to learn and understand, though. Thanks!
I did take some of the code off of a guide on the web, and I don't understand it totally, so can someone explain to me what this code does as well? What is e.currentTarget? Thanks!
var newLaser1:MovieClip = e.currentTarget as MovieClip;
Here's the full .as file if anybody wants to take a look. http://pastebin.com/5ff4BQa5Hi, I managed to solve the errors (kind of) by using this code.
for (var i:int = tower1BulletArray.length - 1; i >= 0; i--)
if (tower1BulletArray.parent)
tower1BulletArray[l].parent.removeChild(tower1BulletArray[l]);
tower1BulletArray.splice(i, 1);
However, the problem still persists that the bullets stay in the screen after I change the scene. Any solution? Thanks! -
Error 2050 with Menu and States - DisplayObject must be a child of the caller.
Hi,
I'm starting an application using States and a main Menu and
when you click on the menu Item it changes the currentState.
I was doing fine until I wanted to dock the Menu using an
ApplicationControlBar.
You can see the error message:
http://dev2003.greatkingcasino.com/flex/casinomanagement.html
My Idea is have always the menu on top and use States for
each one of the menuItems. How can be done?
Thanks,
Paul
Code:
AS File:
// MENU PERMISSIONS
private function initApp():void
dsData.send();
}//initApp
private function onResultMenuData(oEvent:ResultEvent):void
xlcMenuData = new
XMLListCollection(oEvent.result.children());
private function menuHandler(oEvent:MenuEvent):void {
currentState = oEvent.item.@label;
MXML File:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml"
creationComplete="initApp()" currentState="navigation">
<mx:Script source="functions.as"/>
<mx:states>
<mx:State name="logIn">
blah
</mx:State>
<mx:State name="navigation">
<mx:SetProperty name="layout" value="absolute"/>
<mx:AddChild position="lastChild">
<mx:ApplicationControlBar dock="true">
<mx:MenuBar x="0" y="0"
dataProvider="{xlcMenuData}"
labelField="@label"
itemClick="menuHandler(event);">
</mx:MenuBar>
</mx:ApplicationControlBar>
</mx:AddChild>
</mx:State>
<mx:State name="Customer Detail" basedOn="navigation">
<mx:AddChild position="lastChild">
<mx:Panel x="0" y="111" width="464" height="247"
layout="absolute" title="General Information">
</mx:Panel>
</mx:AddChild>
<mx:AddChild position="lastChild">
<mx:Panel x="472" y="111" width="350" height="530"
layout="absolute" title="Customer Information">
<mx:Form x="0" y="0" width="310" height="100%">
</mx:Form>
<mx:ControlBar>
<mx:Button label="Update Information"/>
</mx:ControlBar>
</mx:Panel>
</mx:AddChild>
<mx:AddChild position="lastChild">
<mx:Panel x="0" y="366" width="300" height="247"
layout="absolute" title="Login Information">
</mx:Panel>
</mx:AddChild>
<mx:AddChild position="lastChild">
<mx:Label text="User Name" x="347" y="59"/>
</mx:AddChild>
<mx:AddChild position="lastChild">
<mx:TextInput id="idCustomerID" text="1" x="421"
y="57"/>
</mx:AddChild>
<mx:AddChild position="lastChild">
<mx:Button label="Search"
click="netService.GetCustomerDetails(idCustomerID.text);" x="589"
y="57"/>
</mx:AddChild>
</mx:State>
<mx:State name="Player Stats" basedOn="navigation">
<mx:AddChild position="lastChild">
<mx:Canvas label="Canvas 1" width="260"
backgroundColor="#e2e2e2" id="canvas6" height="580" y="61">
<mx:DateChooser x="10" y="66" id="datechooser1"/>
<mx:DateChooser x="10" y="290" id="datechooser2"/>
<mx:Button x="185" y="10" label="Search"
id="button1"/>
<mx:NumericStepper x="192" y="92" id="iniHour1" value="0"
minimum="0" maximum="23"/>
<mx:NumericStepper x="192" y="148" id="iniMinute1"
value="0" minimum="0" maximum="59"/>
<mx:Label x="10" y="40" text="Start Date"
fontWeight="bold" id="label1"/>
<mx:Label x="10" y="264" text="End Date"
fontWeight="bold" id="label2"/>
<mx:Label x="192" y="66" text="Hour" id="label3"/>
<mx:Label x="192" y="122" text="Minute" id="label4"/>
<mx:NumericStepper x="192" y="204" id="iniSecond1"
value="0" minimum="0" maximum="0"/>
<mx:Label x="192" y="178" text="Second" id="label5"/>
<mx:NumericStepper x="192" y="316" id="endHour1"
value="23" minimum="0" maximum="23"/>
<mx:NumericStepper x="192" y="372" id="endMinute1"
value="59" minimum="0" maximum="59"/>
<mx:Label x="192" y="290" text="Hour" id="label6"/>
<mx:Label x="192" y="346" text="Minute" id="label7"/>
<mx:NumericStepper x="192" y="428" id="endSecond1"
value="59" minimum="59" maximum="59"/>
<mx:Label x="192" y="402" text="Second" id="label8"/>
</mx:Canvas>
</mx:AddChild>
<mx:AddChild position="lastChild">
<mx:Canvas label="Canvas 2" width="486"
backgroundColor="#e2e2e2" id="canvas7" height="1200" x="268"
y="61">
<mx:DataGrid x="10" y="10" width="402" height="100%"
id="datagrid1">
<mx:columns>
<mx:DataGridColumn headerText="Player"
dataField="col1"/>
<mx:DataGridColumn headerText="Risk"
dataField="col2"/>
<mx:DataGridColumn headerText="Win" dataField="col3"/>
<mx:DataGridColumn headerText="Casino win"
dataField="col1"/>
<mx:DataGridColumn headerText="Percent (%)"
dataField="col2"/>
</mx:columns>
</mx:DataGrid>
</mx:Canvas>
</mx:AddChild>
</mx:State>
<mx:State name="Casino Usage" basedOn="navigation">
</mx:State>
</mx:states>
<mx:HTTPService id="dsData" url="MenuData.xml"
resultFormat="e4x" result="onResultMenuData(event)"/>
</mx:Application>
Texttry{
catch(error:Error){
finally{
(look up error handling in documentation) -
Hello
I am having some trouble adding UI controls dynamically. Mostly with radio buttons.
Here is an example that demonstrates my problem:
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationPolicy="all"
>
<fx:Script>
<![CDATA[
import mx.containers.Form;
import mx.containers.Panel;
import mx.controls.Label;
import mx.controls.NumericStepper;
import mx.controls.RadioButton;
private var theChar:String = "B";
protected function btnAdd_clickHandler(event:MouseEvent):void
var theForm:Form = new Form();
theForm.label = theChar;
//1. Label
var myLabel:Label = new Label();
myLabel.text = "My Label";
myLabel.width=120;
theForm.addChild(myLabel);
//2. Numeric Stepper
var myNumStepper:NumericStepper = new NumericStepper();
myNumStepper.id = "numPointHigh" + theChar;
myNumStepper.name = "numPointHigh" + theChar;
myNumStepper.minimum = 0;
myNumStepper.maximum = 120;
myNumStepper.width = 50;
myNumStepper.height = 30;
theForm.addChild(myNumStepper);
//3. radio button
var myRadioButton:RadioButton = new RadioButton;
myRadioButton.id = "myRadioButton" + theChar;
myRadioButton.name = "myRadioButton" + theChar;
myRadioButton.label = "my radio button";
myRadioButton.selected = true;
theForm.addChild(myRadioButton);
//4. Panel
var thePanel:Panel = new Panel();
thePanel.width = 300;
thePanel.height = 475;
thePanel.name=theChar;
thePanel.title = "My Profile Panel";
thePanel.setStyle("backgroundColor", "blue");
//add the form to the panel
thePanel.addChild(theForm);
//add the Panel to the list control
myList.addChild(thePanel);
protected function btnClear_clickHandler(event:MouseEvent):void
var numChildren:Number = myList.numChildren;
for(var i:Number=numChildren - 1; i > -1; i--){
myList.removeChildAt(i);
]]>
</fx:Script>
<mx:VBox width="100%">
<mx:List id="myList" />
<mx:Button id="btnAdd" label="Add a panel" click="btnAdd_clickHandler(event)" color="black"/>
<mx:Button id="btnClear" label="Clear" click="btnClear_clickHandler(event)" color="black" />
</mx:VBox>
</s:Application>
^ Run that. Click the "Add a panel" button. Then click "Clear". Then click the "Add a panel" button again. You will see the error:
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/getChildIndex()
at mx.core::Container/getChildIndex()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core \Container.as:2833]
at mx.containers::Panel/getChildIndex()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\co ntainers\Panel.as:1174]
at mx.controls::RadioButtonGroup/breadthOrderCompare()[E:\dev\4.0.0\frameworks\projects\fram ework\src\mx\controls\RadioButtonGroup.as:600]
at mx.controls::RadioButtonGroup/breadthOrderCompare()[E:\dev\4.0.0\frameworks\projects\fram ework\src\mx\controls\RadioButtonGroup.as:611]
at mx.controls::RadioButtonGroup/breadthOrderCompare()[E:\dev\4.0.0\frameworks\projects\fram ework\src\mx\controls\RadioButtonGroup.as:611]
at Array$/_sort()
at Array/http://adobe.com/AS3/2006/builtin::sort()
at mx.controls::RadioButtonGroup/http://www.adobe.com/2006/flex/mx/internal::addInstance()[E:\dev\4.0.0\frameworks\projects \framework\src\mx\controls\RadioButtonGroup.as:465]
at mx.controls::RadioButton/addToGroup()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\c ontrols\RadioButton.as:574]
at mx.controls::RadioButton/commitProperties()[E:\dev\4.0.0\frameworks\projects\framework\sr c\mx\controls\RadioButton.as:514]
at mx.core::UIComponent/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\ mx\core\UIComponent.as:7772]
at mx.managers::LayoutManager/validateProperties()[E:\dev\4.0.0\frameworks\projects\framewor k\src\mx\managers\LayoutManager.as:572]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.0.0\frameworks\projects\frame work\src\mx\managers\LayoutManager.as:730]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.0.0\frameworks\projec ts\framework\src\mx\managers\LayoutManager.as:1072]
I do not understand why I cannot re-add the radio button? If you comment out the code for the radio button (comment section #3.) you can re-add the panels easily. It is only happening when I have radio buttons being added to the form/panel.
Why is this happening and how do I fix it? Why is this only happening to radio buttons? I thought I had this fixed^ well, okay, but that's not the problem.
here, i removed list and replaced with Panel. same problem on the radio buttons.
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:containers="com.dougmccune.containers.*"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationPolicy="all"
>
<fx:Script>
<![CDATA[
import mx.containers.Form;
import mx.containers.Panel;
import mx.controls.Label;
import mx.controls.NumericStepper;
import mx.controls.RadioButton;
private var theChar:String = "B";
protected function btnAdd_clickHandler(event:MouseEvent):void
var theForm:Form = new Form();
theForm.label = theChar;
//1. Label
var myLabel:Label = new Label();
myLabel.text = "My Label";
myLabel.width=120;
theForm.addChild(myLabel);
//2. Numeric Stepper
var myNumStepper:NumericStepper = new NumericStepper();
myNumStepper.id = "numPointHigh" + theChar;
myNumStepper.name = "numPointHigh" + theChar;
myNumStepper.minimum = 0;
myNumStepper.maximum = 120;
myNumStepper.width = 50;
myNumStepper.height = 30;
theForm.addChild(myNumStepper);
//3. radio button
var myRadioButton:RadioButton = new RadioButton;
myRadioButton.id = "myRadioButton" + theChar;
myRadioButton.name = "myRadioButton" + theChar;
myRadioButton.label = "my radio button";
myRadioButton.selected = true;
theForm.addChild(myRadioButton);
//4. Panel
var thePanel:Panel = new Panel();
thePanel.width = 300;
thePanel.height = 475;
thePanel.name=theChar;
thePanel.title = "My Profile Panel";
thePanel.setStyle("backgroundColor", "blue");
//add the form to the panel
thePanel.addChild(theForm);
//add the Panel to the list control
myContainer.addChild(thePanel);
protected function btnClear_clickHandler(event:MouseEvent):void
var numChildren:Number = myContainer.numChildren;
for(var i:Number=numChildren - 1; i > -1; i--){
myContainer.removeChildAt(i);
]]>
</fx:Script>
<mx:VBox width="100%">
<mx:Panel id="myContainer" />
<mx:Button id="btnAdd" label="Add a panel" click="btnAdd_clickHandler(event)" color="black"/>
<mx:Button id="btnClear" label="Clear" click="btnClear_clickHandler(event)" color="black" />
</mx:VBox>
</s:Application>
Any idea why radio buttons causing this to happen? If I comment out the radio button, this works fine. This is really baffling me.
The exception is thrown when the dynamically created panel (thePanel) is added to the main Panel (myContainer):
myContainer.addChild(thePanel); <--- causes the exception!
^ Why would radio buttons make a difference on "thePanel"?? How can I enforce parent-child relationship, explicitly? .parent is read-only -
Cannot remove display object: must be child of the caller
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/removeChild()
at working_loader_container3_fla::MainTimeline/frame4()
at flash.display::MovieClip/prevFrame()
I have been getting this error after a bunch of different ways of trying this. I am attempting to create a new instance of my movieclip which displays external images via xml. I want a new instance of the movieclip every other frame and need to be able to remove each instance on every other frame. It will work going forwards, with a remove child call but as soon as I go back a frame, the error pops up.
I tried using an if statement, but to no avail.
I have attched an extremely rudimentary example of my issue, any help would be appreciated. The problem is best illustrated at frame 4 layer 2.Thanks for the help. I finally got it to work. Below is what I put on the top layer. I called the addChild() method after creating a new instance of my MovieClip class on each frame I wanted the images to appear on the second layer. Not the most elegant of solutions but worked. (I'm a rookie.)
next_btn.addEventListener(MouseEvent.CLICK, goNext);
back_btn.addEventListener(MouseEvent.CLICK, goBack);
function goNext(event:MouseEvent):void {
nextFrame();
if(currentFrame == 2)
removeChild(container_mc);
if(currentFrame == 4)
removeChild(container_mc3);
function goBack(event:MouseEvent):void {
if(currentFrame == 3)
removeChild(container_mc3);
if(currentFrame == 5)
removeChild(container_mc5);
prevFrame(); -
Hello everyone. Curious if someone might be able to give me a
hand. I am attaching a screen grab for you to see what I am talking
about. It has the error there to read.
So what is happening is I have buttons dynamically calling
movie clips as drop menus. Now in one of the movie clips there is a
sub menu. Now when I roll over the sub menu I get the error that is
in the screen grab. I know what the problem is, I just don't know
how to fix it. The problem is on the sub menu where I have 4
buttons. When I go to rollover the buttons that is when I get the
error. When I remove the buttons then everything is fine.
I hope someone can help.
Thanks in advance.
Kevin
Link to attachmentHi Chester,
Sorry for taking so long to get back to you; I have
downloaded your fla and the final swf file is not giving me an
error when I mouse over the legal buttons. But the links ain't been
completed, right?
Your file is working very nicely, once you've added the
links. Sorry mate, but I am not sure why your getting the error;
maybe just maybe you might be getting a security sandbox problem.
Kind Regards,
Boxing Boom -
FaceTime and iCloud must be signed in to the same Apple ID to use iPhone Cellular Calls.
FaceTime and iCloud must be signed in to the same Apple ID to use iPhone Cellular Calls.
This is the error message I receive when I try to add my phone to my Mac for proximity / FaceTime audio calling. This feature worked until I changed my Apple ID. I have updated my Apple ID everywhere I can think of updating it. I've signed out of Apple ID on my Mac, deleted EVERYTHING (calendars, contacts, etc.), signed back in, etc. I've done the same with my phone, and even done a power-down / reboot and nada. I keep getting this message from the Mac.
I can't figure out where else I should look for my old Apple ID to be logged into anything or creating problems. I've gone over my iPhone and Mac and I'm at a loss. As an aside (and yes, wrong forum), have lost the ability to do SMS forwarding since the Mac no longer receives the code from my iPhone to allow this feature to work. This was lost after signing out of the Apple ID on my Mac this afternoon.
Bluetooth is turned on for both devices. Both devices are on the same WiFi network. Both devices otherwise appear to be working correctly with the exception of the problems I'm having with FaceTime and iCloud being signed into the same Apple ID (which they are).
Thanks in advance,(By the way, I should have pointed out in my earlier posting that I'm running OS X Yosemite 10.10.3 on my Mac). I Just installed latest Yosemite update while my iPhone was switched off, and when my Mac restarted, the 'iPhone Cellular Calls' checkbox in the FaceTime preferences was checked and the problem was therefore solved. Switched on my iPhone, still fine. Relief.
-
There is no option to reject an incoming call in locked screen, there must be an icon on the screen for one who don't want to use lock button several times, i did'nt face this problem in last ios 6.1.3.
A good read. Have you done anything at all to resolve your problem. Reset? Restore?
By the way - "your products"... nobody here produced the iPhone, we are all just users. Apple is not here. -
Cannot Turn On iPhone Cellular Calls - FaceTime and iCloud must be signed in to the same Apple ID to use iPhone Cellular Calls.
I *AM* signed into Facetime and iCloud using the same Apple ID. Why am I receiving this error all of a sudden? I make calls using my Mac and need this feature. I have tried disabling and re-enabling both over a dozen times. TRUST ME, it is NOT user error -- it is Apple releasing features before they are fully ready error!I'm pretty sure we can clarify whether or not we are on a Public Beta or not, despite NDA........
From the FAQ: https://appleseed.apple.com/sp/betaprogram/faq
Quote:
Is the public beta software I am installing confidential?
Yes, the public beta software is Apple confidential information. For example, don’t install the public beta software on any systems you don't directly control or that you share with others. Don’t blog, post screen shots, tweet, or publicly post information about the public beta software, and don't discuss the public beta software with or demonstrate it to others who are not in the Apple Beta Software Program. If Apple has publicly disclosed technical information about the public beta software, it is no longer considered confidential. Read our Terms for full details -
Recently some of my contacts are no longer displaying in my contact list, but I know they're in memory because when one of them calls me my phone recognizes the caller. This happened a few days ago, so i must have changed some setting,but I have no idea which one. Can anyone help?
Why start a new and very similar thread to your other one which you have not responded to (have you read the replies?)
I suggest that no response is made to this duplicate thread. -
To access a package, the calling class must reside in the root/parent direc
My goal was to be able to access my package from anywhere within the
high level root folder (d:\zJava). But it seems the invoking class MUST
RESIDE IN THE TOP LEVEL PARENT DIRECTORY of the package. Was Java
designed to behave this way?
D:\zJava\zsamples\com\zswingpackage1> <-- packages successfully compiled here
swing_optgrp_eg1.{class/java}
package com.zswingpackage1;
public class swing_optgrp_eg1 extends JFrame implements ItemListener {
D:\zJava\zsamples\com> <-- classes residing here could NOT successfully access the package 'com.zswingpackage1'. The third level subfolder is 'com'.
package_test4.java
/* Following import stmt. causing RUN-TIME error "Exception in thread "main" java.lang.NoClassDefFoundError: com/zswingpackage1/swing_optgrp_eg1". */
import com.zswingpackage1;
Package_Test4.class
/* Unsuccessful remedies:
i) D:\zJava\zsamples\com>java Package_Test4
-classpath .;d:\zJava\zsamples\com\zswingpackage1
-classpath .;d:\zJava\zsamples\com
-classpath .;d:\zJava\zsamples (also used in compile)
-classpath .;d:\zJava
ii) ran from the root/parent directory of the package d:\zJava\zsamples),with and without classpath i.e.
D:\zJava\zsamples>java com\Package_Test4 [-classpath .;d:\zJava\zsamples]
iii) ran from the top level directory (d:\zJava), with and without classpath i.e.
D:\zJava>java zsamples\com\Package_Test4 [-classpath .;d:\zJava\zsamples]
Possible causes:
- maybe the above behaviours are by design i.e. the calling class/program CANNOT be stored within the package hierarchy?
D:\zJava\zsamples\net> <-- classes residing here could NOT successfully access the package 'com.zswingpackage1'. The third level subfolder is 'net'.
package-test6.java
/* Following import stmt. causing RUN-TIME error "Exception in thread "main" java.lang.NoClassDefFoundError: com/zswingpackage1/swing_optgrp_eg1". */
import com.zswingpackage1;
Package_Test6.class
/* Unsuccessful remedies:
i) D:\zJava\zsamples\net>java Package_Test6
-classpath .;d:\zJava\zsamples\com\zswingpackage1
-classpath .;d:\zJava\zsamples\com
-classpath .;d:\zJava\zsamples (also used in compile)
-classpath .;d:\zJava
ii) ran from the root/parent directory of the package (d:\zJava\zsamples), with and without classpath i.e.
D:\zJava\zsamples>java net\Package_Test6 [-classpath .;d:\zJava\zsamples]
iii) ran from the top level directory (d:\zJava), with and without classpath i.e.
D:\zJava>java zsamples\net\Package_Test6 [-classpath .;d:\zJava\zsamples]
Possible causes:
- maybe the above behaviours are by design i.e. the calling class/program MUST be stored in the parent folder of the package hierarchy?
**D:\zJava\zsamples> <-- classes residing here SUCCESSFULLY accessed package 'com.zswingpackage1'. NO -classpath parms. were necessary!
D:\zJava\ <-- classes residing here could NOT successfully access the package 'com.zswingpackage1'. Similar scenarios as above.
D:\zJavaB\ <-- classes residing here could NOT successfully access the package 'com.zswingpackage1'. I purposely created another folder with the 'B' suffix. Similar scenarios as above.
My PC configuration:
java version "1.4.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_01-b03)
Java HotSpot(TM) Client VM (build 1.4.0_01-b03, mixed mode)
JRun 4 (Build 47304)
WinNT 4.0 SP5
IE 5.50
CLASSPATH=.;D:\jakarta-tomcat-3.3.1\lib\common\servlet.jar;
C:\JRun4\servers\default\default-ear\default-war\WEB-INF\classes
JAVA_HOME=C:\j2sdk1.4.0_01
Path=C:\j2sdk1.4.0_01\bin;C:\WINNT\system32;C:\WINNT;
C:\Program Files\Network Associates\PGPNT;C:\Program Files\MTS;d:\MSSQL7\BINN
Thank you so much for your expertise.Hello,
I think that you use the import-declarations incorrectly.
Your code says:
import com.zswingpackage1;
... The meaning of the above declaration is the following: Import the class "zswingpackage1" from the package "com". The compiler cannot find that class, but it is probably never asked to find it in your code, so it won't report an error.
If you want to import the whole package use the following declaration instead:
import com.zswingpackage1.*;
... That means: import all classes from from the package "com.zswingpackage1".
You can also import just the classes needed, e.g.:
import com.zswingpackage1.swing_optgrp_eg1;
... I hope that does the job.
Søren -
Calls drop must hit flash to get the person back
I have Verizon Fios and have an intermittent problem where I'll be taking on the phone and it suddenly cuts out. I have to hit the flash on my phone to get the caller back. I've called Verizon a few time and they cannot find the problem. I use cordless phones and have replaced them 3 times with the same results.
We have not received a response in reference to your issue. Please repost if you are still experiencing a problem.
Tonya D.
Maybe you are looking for
-
I have a slot machine app that I have played for a long time and have gotten to a very high level. I just recieved a I- pad Mini and when I downloaded the app on the Mini it started me back at the first level. Can I have in the mini the same level ac
-
I just purchased a Canon XSI. I have been having issues importing the .cr2 format, though. I found one person who was having problems and they said to select a different source, then move back to the card or camera, which solved one issue I had. The
-
Jdev 10.1.2 problem define jstl tagLib
hi, i have a problem in my jsp when i compile it with JDev 10.1.2, when trying to use JSTL tag: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> I always get the following message: Error(3,49): Attribute 'xmlns' used but not declared.
-
How do I turn off the headphones to make a call?
This is odd. How do I turn off the headphones off to make a call? For the last two days, every time I make or receive a call, my iPhone (1.1.3) thinks that my headphones are in, even when they are not. When the call engages, there is no audio on the
-
"Unable to download item. Please try again later. "
Hello. After updating to iOS8, whenever i turn off and power my phone, I receive a pop-up "Unable to download item. Please try again later. " at first I thought it was an app gone rogue but in the appstore I did not see anything suspicious. After res