Search Results

Search found 471 results on 19 pages for 'addchild'.

Page 1/19 | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >

  • actionscript 3 addchild within child and fade

    - by steve
    Here is my current code: import flash.display.*; import fl.transitions.*; import flash.events.MouseEvent; stop(); var container:MovieClip = new MovieClip(); container.width = 450; container.height = 450; container.x = 450; container.y = 0; var closeBtn:close_btn = new close_btn(); closeBtn.x = 850; closeBtn.y = 15; var bagLink:MovieClip = new bag_link_mc(); bagLink.x = 900; bagLink.y = 0; menu_bag_button.addEventListener(MouseEvent.CLICK, bagClick); function bagClick(event:MouseEvent):void{ if(MovieClip(root).currentFrame == 850) { } else { MovieClip(root).addChild (bagLink); MovieClip(root).addChild (closeBtn); MovieClip(root).gotoAndPlay(806); } } closeBtn.addEventListener(MouseEvent.CLICK, closeBag); function closeBag (event:MouseEvent):void{ MovieClip(root).removeChild(bagLink); MovieClip(root).removeChild(closeBtn); MovieClip(root).gotoAndPlay(850); } I need the first mouse function (bagClick) to create the bagLink within the container movieclip variable. I tried change it to this, but it didn't work: else { MovieClip(root).addchild (container); MovieClip(root).container.addChild (bagLink); MovieClip(root).addChild (closeBtn); MovieClip(root).gotoAndPlay(806); } I'm also trying to make "container" or "bagLink" fade in when it loads but that doesn't work either. Any help is appreciated.

    Read the article

  • actionscript 3 addchild within child and fade

    - by steve
    Here is my current code: import flash.display.*; import fl.transitions.*; import flash.events.MouseEvent; stop(); var container:MovieClip = new MovieClip(); container.width = 450; container.height = 450; container.x = 450; container.y = 0; var closeBtn:close_btn = new close_btn(); closeBtn.x = 850; closeBtn.y = 15; var bagLink:MovieClip = new bag_link_mc(); bagLink.x = 900; bagLink.y = 0; menu_bag_button.addEventListener(MouseEvent.CLICK, bagClick); function bagClick(event:MouseEvent):void{ if(MovieClip(root).currentFrame == 850) { } else { MovieClip(root).addChild (bagLink); MovieClip(root).addChild (closeBtn); MovieClip(root).gotoAndPlay(806); } } closeBtn.addEventListener(MouseEvent.CLICK, closeBag); function closeBag (event:MouseEvent):void{ MovieClip(root).removeChild(bagLink); MovieClip(root).removeChild(closeBtn); MovieClip(root).gotoAndPlay(850); } I need the first mouse function (bagClick) to create the bagLink within the container movieclip variable. I tried change it to this, but it didn't work: else { MovieClip(root).addchild (container); MovieClip(root).container.addChild (bagLink); MovieClip(root).addChild (closeBtn); MovieClip(root).gotoAndPlay(806); } I'm also trying to make "container" or "bagLink" fade in when it loads but that doesn't work either. Any help is appreciated.

    Read the article

  • movieClip in Array displays null, and aren't showing up on stage.addChild(Array[i])

    - by jtdino
    i am new to Actionscript3, i need to know why i keep getting Parameter child must be non-null. And my code won't display 5 enemyBlock objects onto the stage but only just one. any tips and help will be much appreciated. thanks in advance. returns: TypeError: Error #2007: Parameter child must be non-null. at flash.display::DisplayObjectContainer/addChild() at flash.display::Stage/addChild() at BlockDrop_fla::MainTimeline/EnemyBlockPos() at BlockDrop_fla::MainTimeline/frame2() // declare varibles var isEnemyMoving:Boolean = false; var enemyArray:Array; var enemyBlock:MovieClip = new EnemyBlock(); // assign EnemyBlock class to enemyBlock var enemyBlockMC:MovieClip; var count:int = 5; var mapWidth:Number = 800; var mapHeight:Number = 600; function EnemyBlockPos() :void { // assign new MovieClip not null enemyBlockMC = new MovieClip; enemyArray = new Array(); for(var i=1; i<= count; i++){ // add class to MC enemyBlockMC.addChild(enemyBlock); // randomize position enemyBlock.x = Math.round(Math.random()*mapWidth); enemyBlock.y = Math.round(Math.random()*mapHeight); // set motion enemyBlock.movement = 5; // add MC to array enemyArray.push(enemyBlockMC); } for (var w = 1; w <= enemyArray.length; w++) { addChild(enemyArray[w]); } } // endOf EnemyBlockPos

    Read the article

  • actionscript simple addchild within child

    - by steve
    I just need a quick answer for this, but I can't find anything about it anywhere. I need to add a child named "framecontainer" and then add another child within that named "bagFrame," both need to be added to the main timeline "MovieClip(root)" (unless there's an easier way to do that). Thanks.

    Read the article

  • adobe flash buider (flex4): addChild() is not available in this class.

    - by ufk
    Hi. I want to be able to load an swf into a flex 4 application in order to use it's classes. var ldr:Loader=new Loader(); ldr.load(new URLRequest("file://path/to/fileswf")); ldr.contentLoaderInfo. addEventListener(Event.INIT, loaded); function loaded(evt:Event):void { addChild(ldr); } i receive the error: Error: addChild() is not available in this class. Instead, use addElement() or modify the skin, if you have one. at spark.components.supportClasses::SkinnableComponent/addChild()[E:\dev\gumbo_beta2\frameworks\projects\spark\src\spark\components\supportClasses\SkinnableComponent.as:966] at main/private:init/loaded()[C:\Documents and Settings\ufk\Adobe Flash Builder Beta 2\xpogames-toolkit-test\src\main.mxml:22] if i change addChild() to addElement() i receive the following compilation error: 1067: Implicit coercion of a value of type flash.display:Loader to an unrelated type mx.core:IVisualElement. main.mxml path/dir line 22 Flex Problem any ideas how to resolve the issue ?

    Read the article

  • does actionscript addChild require a display object first

    - by touB
    I'm trying to move away from mxml to actionsctipt. I have a <s:Rect> that I've created and set its properties, but having trouble adding it. var aRect:Rect = new Rect(); //set properties like aRect.x, aRect.y, aRect.width, aRect.height //tried adding it various ways addChild(aRect); Application.addChild(aRect); Application.application.addChild(aRect); stage.addChild(aRect); But I keep getting the error 1067: Implicit coercion of a value of type spark.primitives:Rect to an unrelated type flash.display:DisplayObject Originally in the mxml, it was right inside <s:Application> not nested inside anything <s:Application> <s:Rect id="aRect" x="10" y="10" width="15%" height="15%"> //then fill code here, removed for readability </s:Rect> </s:Application> What's the deal, I thought actionscript would be nicer than mxml.

    Read the article

  • addchild not displaying content

    - by Rajeev
    In the following code i dont have any error but why is that the addchild(video); i.e, the the video captured by webcam is not displayed <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import org.com.figurew; import mx.controls.Button; import mx.controls.Alert; import flash.display.InteractiveObject; import flash.display.Sprite; import flash.media.*; import flash.net.*; public function addBody():void { var ret:Number = figurew.getInstance().getparam(); if( ret == 1) { Alert.show("Camera detected"); } if(ret == 0) { Alert.show("No camera detected"); } var cam:Camera = Camera.getCamera(); if(cam != null) { cam.setMode(640, 480, 30); var video:Video = new Video(30, 40); video.attachCamera(cam); addChild(video); } else { trace("No Camera Detected"); } } ]]> </mx:Script> <mx:Button label="Test camera" click="addBody();" x="99" y="116"/> </mx:Application > figurew.as package org.com { import flash.display.InteractiveObject; import flash.display.Sprite; import flash.media.*; import flash.net.*; public class figurew extends Sprite { public function figurew() { //getparam(); var cam:Camera = Camera.getCamera(); if(cam != null) { cam.setMode(640, 480, 30); var video:Video = new Video(300, 450); video.attachCamera(cam); addChild(video); } else { trace("No Camera Detected"); } } public function getparam():Number { var cam:Camera = Camera.getCamera(); if(cam != null) { cam.setMode(640, 480, 30); var video:Video = new Video(300, 450); video.attachCamera(cam); addChild(video); return 1; } else { return 0; trace("No Camera Detected"); } } private static var _instance:figurew = null; public static function getInstance():cldAS { if(_instance == null) { trace("No instance found"); _instance = new cldAS(); } return _instance; } } }

    Read the article

  • Flex 3 : UIComponent.addChild issue

    - by Frank
    Hello SOers, I've run into a nice problem with the UIComponent.addChild(...) function. First of all, I'm using ESRI Api for Flex. In this API you find a class called Graphic that inherits UIComponent. Basically, I'm trying to add, as a child, a Graphic 'g' to another graphic 'parent'. So that when you delete the 'parent' graphic the 'g' graphic deletes as well. private function writeMeasurements(parent:Graphic):void { var g:Graphic; if(parent.geometry.extent != null) g = new Graphic(parent.geometry.extent.center); else g = new Graphic(parent.geometry); g.initialize(); g.name = UIDUtil.createUID(); g.symbol = txtSym; graphicsLayer.add(g); parent.addChild(g); } graphicsLayer class This code actually runs pretty fine. The problem is after... it's like if the addChild function was asynchronious. This is the error I get : TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul. at com.esri.ags::Graphic/updateDisplayList()[C:\checkout\flex_api\api\src\com\esri\ags\Graphic.as:346] at mx.core::UIComponent/validateDisplayList() at mx.managers::LayoutManager/validateDisplayList() at mx.managers::LayoutManager/doPhasedInstantiation() at Function/http://adobe.com/AS3/2006/builtin::apply() at mx.core::UIComponent/callLaterDispatcher2() at mx.core::UIComponent/callLaterDispatcher() I know this is a very specific question, but I think you guys are the BEST! Thanks.

    Read the article

  • Drawing Shapes in Flex 4/AS3 addchild issues

    - by Parris
    Hi All, I am simply trying to draw a rectangle inside of a panel using flex4. I am using spark instead of mx. It complains about addchild being replaced by addelement; however, addelement expects type ivisualcomponent. I think sprite should be of that type; however, it reports an error when trying to use the below code... I have tried a few different ways. I think I am missing something very basic about flex 4. Any enlightenment would be much appreciated! :-D private function drawRectangle(e:MouseEvent):void{ var s:Sprite = new Sprite(); s.graphics.beginFill(0x00ff00, 0.5); s.graphics.drawRect(e.localX,e.localY,50,50); s.graphics.endFill(); canvas.addChild(s); }

    Read the article

  • AS3 + addChild() getting image from library to the stage

    - by Colin
    Hi, I have an .fla file with 1 image in the library and 1 .as file. I have linked the image up with the Class name of libraryImages and Base class is flash.display.BitmapData. This is my AS: package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.MovieClip; public class Banner extends MovieClip { var defaultImage:libraryImages = new libraryImages(469, 60); var myImage:Bitmap = new Bitmap(defaultImage); addChild(myImage); } } I am getting two errors: 1180: Call to a possibly undefined method addChild. 1120: Access of undefined property myImage. Any ideas?

    Read the article

  • addChild to root and fade in

    - by steve
    Still very newbish at Actionscript. Trying to get a website done for class on wednesday, but I can't get this one thing down. Currently there's the main timeline, then a movieclip called menu_mc, and within that are a bunch of buttons. For now, I only have one button scripted. When the button is scripted, I want a movieclip with content embedded in it to fade in on the right side, along with a close button. I can get the movie/button to appear and close, but I can't get them to fade in and out. This is what I have: import flash.display.*; import fl.transitions.*; import flash.events.MouseEvent; stop(); var closeBtn:close_btn = new close_btn(); closeBtn.x = 850; closeBtn.y = 15; var bagLink:MovieClip = new bag_link_mc(); bagLink.x = 900; bagLink.y = 0; menu_bag_button.addEventListener(MouseEvent.CLICK, bagClick); function bagClick(event:MouseEvent):void{ if(MovieClip(root).currentFrame == 850) { } else { MovieClip(root).addChild (bagLink); MovieClip(root).addChild (closeBtn); MovieClip(root).gotoAndPlay(806); } } closeBtn.addEventListener(MouseEvent.CLICK, closeBag); function closeBag (event:MouseEvent):void{ MovieClip(root).removeChild(bagLink); MovieClip(root).removeChild(closeBtn); MovieClip(root).gotoAndPlay(850); }

    Read the article

  • Stage shifts when using addChild?

    - by josh
    I'm having a very odd bug with ActionScript 3 in Flash CS4. I am adding movie clips to a stage in a for loop and then moving them out of view so that I can pull them in and remove them when I need them. I've narrowed down the issue to a point that I know that every time one of the movie clips are added to the stage using addChild(), the stage shifts to the right by one pixel. I know that sounds odd, but it's literally true... the 0 line on the y axis is shifted to the right one pixel every time the movie clip is added. I have no idea how this could be happening. Here's the code that is doing the work: private function setupSlides():void { for(x = 0; x < TOTAL_SLIDES; x++) { var ClassReference:Class = getDefinitionByName("Slide" + (x+1)) as Class; var s:MovieClip = new ClassReference() as MovieClip; s.x = 9999; s.y = 9999; addChild(s); slides[x] = s; } } Any thoughts?

    Read the article

  • Actionscript 3 Sprite AddChild

    - by Amy
    Im new to actionscript 3 and am a little confused about how the addchild function works. I want to draw 5 houses. each house has a roof and wall. Each wall has a door and a window. I have the following classes and this is how I grouped them class Main class House class Roof //a triangle class Wall //a rectangle class Door //a rectangle class Window //a square Im having trouble with inheritance of the classes. I cant made the wall class show up with a window and a door. Can someone point me to the right direction?

    Read the article

  • addChild in the same layer

    - by CEAFDC
    I'm doing an application that puts tons of sprites on the screen in random position, like throwing cards on a table, but after a while it starts to drop the fps, because all the sprites still there. What I would like to do is adding the sprites but like an image, what's behind isn't stored. There are some way to do that? the code looks like this: var mySprite:MySprite = new MySprite(); mySprite.x = random; mySprite.y = random; mySprite.rotation = random; addChild(mySprite); Ps: I will not have to mess with them after they are on the screen.

    Read the article

  • addChild, etc. using NSTreeController and NSTreeNode (snow leopard)

    - by John Velman
    I have a setup with an object (OTNodeDatum) (OT for OutlineTest) to be the represented object in NSTreeNode. NSTreeNode is the Class shown in the attributes page for NSTreeController. I have document based app, no core data. On MyDocument init, I set up content with an NSMutableArray containing one item, an NSTreeNode with a represented object which contains a single property (yes, name). Add button, Add Child button, Delete button, hooked up via interface builder to the NSTreeController add action, etc. It works up to a point. When I do an add, I get a new blank line which I can edit, but the inserted text goes away when I leave the cell. When I do a delete, things get deleted. When I do add child, nothing happens. I think I have to subclass either NSTreeNode, or NSTreeController to get the right behavior in terms of adding children and adding a new represented object in addition to adding a new tree node. IS this on the right track? If I subclass NSTreeController would I just override the add, addChild, to get the right thing to happen? And what could I mess up? I can't seem to find any guidance on this, although I've spent a long time looking. Thanks. John V

    Read the article

  • curios about CCSpriteBatchNode's addchild method

    - by lzyy
    when diving into "learn cocos2d game development with ios5", in ch08 in EnemyCache.m -(id) init { if ((self = [super init])) { // get any image from the Texture Atlas we're using CCSpriteFrame* frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"monster-a.png"]; batch = [CCSpriteBatchNode batchNodeWithTexture:frame.texture]; [self addChild:batch]; [self initEnemies]; [self scheduleUpdate]; } return self; } so batch is with texture "monster-a.png" in EnemyEntity.m's initWithType method switch (type) { case EnemyTypeUFO: enemyFrameName = @"monster-a.png"; bulletFrameName = @"shot-a.png"; break; case EnemyTypeCruiser: enemyFrameName = @"monster-b.png"; bulletFrameName = @"shot-b.png"; shootFrequency = 1.0f; initialHitPoints = 3; break; case EnemyTypeBoss: enemyFrameName = @"monster-c.png"; bulletFrameName = @"shot-c.png"; shootFrequency = 2.0f; initialHitPoints = 15; break; default: [NSException exceptionWithName:@"EnemyEntity Exception" reason:@"unhandled enemy type" userInfo:nil]; } if ((self = [super initWithSpriteFrameName:enemyFrameName])) { //... } so the returned object may be in 3 different frame. since Only the CCSprites that are contained in that texture can be added to the CCSpriteBatchNode, obviously, 'monster-b.png' is not contained in 'monster-a.png', why the different enemy can still be added to the batch?

    Read the article

  • flash as3: can children not run their own actionscript?

    - by HeroicNate
    I thought I was being slick by having movieclips that I export for actionscript and then addChild later. I've made this one movieclip that loads html text through as, and it works fine when I drag it to the stage; but if I do var trackListingBox:trackListingScreen = new trackListingScreen(); addChild(trackListingBox); it either doesn't run the actionscript, or it's somehow broken. Can children not run their own action script?

    Read the article

  • ActionScripting Issue: adding/removing children

    - by user1890698
    I have three movie clips all linked to the stage and I want them to behave like a button/ But I am not using a button because I have not found a way to have each part (up, over, down, hit) be animated and not just change when the mouse is in use with it. So far I have been able to have all three appear on my stage and show when I have the mouse over and as well when I click, but I think I'm doing something wrong with removeChild. Each MC should appear one at a time and now all three show up when I hover over and seem to "flash". Here's my code: var mainMoon:swayingMoon = new swayingMoon(); mainMoon.x = 50; mainMoon.y = 10; addChild(mainMoon); var hoverMoon:glowMoon = new glowMoon(); hoverMoon.x = 50; hoverMoon.y = 10; var movieMoon:clickedMoon = new clickedMoon(); movieMoon.x = 50; movieMoon.y = 10; mainMoon.addEventListener(MouseEvent.ROLL_OVER, showHoverMoon); mainMoon.addEventListener(MouseEvent.ROLL_OUT, hideHoverMoon); hoverMoon.addEventListener(MouseEvent.CLICK, startMovieMoon) function showHoverMoon(event:MouseEvent):void { addChild(hoverMoon); } function hideHoverMoon(event:MouseEvent):void { removeChild(hoverMoon) } function startMovieMoon(event:MouseEvent):void { addChild(movieMoon); }

    Read the article

  • Using the Loader display object to load X jpegs, then resize each of the images differently while th

    - by Supernovah
    Hey there, I was wondering if this is possible to do I am able to load the image in and have it displayed easily enough by using addChild(myLoader); where myLoader is in the classWide private scope. The problem is, whenever I call my function inside that class which adds the loader to the stage, it clears the old one and puts this new one in even if I add a bit where I change myLoader.name to something related to how many images it has completed. This is a serious hinderance as I can't do anything besides KNOW how many images I will need to load and write the code X times. The problem being is that the urls are read from an XML file. My main desire was to have a classWide private Array which contained my loaders and I would assign them using myArray.push(myLoader) each time the load had completed. There is a problem which is that it compiles but they never get displayed it would work as this is written public class Images extends Sprite { private var imagesLoaded = 0; private var myLoader:Loader; ... public function Images():Void { myLoader = new Loader; //loop calling a myLoader.load(imageURL) for a bunch of urls myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); } public function imageLoaded { myArray[imagesLoaded] = myLoader; trace("does\'nt get to here!!"); addChild(myArray[imagesLoaded]); imagesLoaded++; } }

    Read the article

  • Add child to scene from within a class.

    - by Fecal Brunch
    Hi, I'm new to flash in general and have been writing a program with two classes that extend MovieClip (Stems and Star). I need to create a new Stems object as a child of the scene when the user stops dragging a Star object, but do not know how to reference the scene from within the Star class's code. I've tried passing the scene into the constructor of the Star and doing sometihng like: this.scene.addChild (new Stems ()); But apparently that's not how to do it... Below is the code for Stems and Stars, any advice would be appreciated greatly. package { import flash.display.MovieClip; import flash.events.*; import flash.utils.Timer; public class Stems extends MovieClip { public const centreX=1026/2; public const centreY=600/2; public var isFlowing:Boolean; public var flowerType:Number; public const outerLimit=210; public const innerLimit=100; public function Stems(fType:Number) { this.isFlowing=false; this.scaleX=this.scaleY= .0007* distanceFromCentre(this.x, this.y); this.setXY(); trace(distanceFromCentre(this.x, this.y)); if (fType==2) { gotoAndStop("Aplant"); } } public function distanceFromCentre(X:Number, Y:Number):int { return (Math.sqrt((X-centreX)*(X-centreX)+(Y-centreY)*(Y-centreY))); } public function rotateAwayFromCentre():void { var theX:int=centreX-this.x; var theY:int = (centreY - this.y) * -1; var angle = Math.atan(theY/theX)/(Math.PI/180); if (theX<0) { angle+=180; } if (theX>=0&&theY<0) { angle+=360; } this.rotation = ((angle*-1) + 90)+180; } public function setXY() { do { var tempX=Math.random()*centreX*2; var tempY=Math.random()*centreY*2; } while (distanceFromCentre (tempX, tempY)>this.outerLimit || distanceFromCentre (tempX, tempY)<this.innerLimit); this.x=tempX; this.y=tempY; rotateAwayFromCentre(); } public function getFlowerType():Number { return this.flowerType; } } } package { import flash.display.MovieClip; import flash.events.*; import flash.utils.Timer; public class Star extends MovieClip { public const sWide=1026; public const sTall=600; public var startingX:Number; public var startingY:Number; public var starColor:Number; public var flicker:Timer; public var canUpdatePos:Boolean=true; public const innerLimit=280; public function Star(color:Number, basefl:Number, factorial:Number) { this.setXY(); this.starColor=color; this.flicker = new Timer (basefl + factorial * (Math.ceil(100* Math.random ()))); this.flicker.addEventListener(TimerEvent.TIMER, this.tick); this.addEventListener(MouseEvent.MOUSE_OVER, this.hover); this.addEventListener(MouseEvent.MOUSE_UP, this.drop); this.addEventListener(MouseEvent.MOUSE_DOWN, this.drag); this.addChild (new Stems (2)); this.flicker.start(); this.updateAnimation(0, false); } public function distanceOK(X:Number, Y:Number):Boolean { if (Math.sqrt((X-(sWide/2))*(X-(sWide/2))+(Y-(sTall/2))*(Y-(sTall/2)))>innerLimit) { return true; } else { return false; } } public function setXY() { do { var tempX=this.x=Math.random()*sWide; var tempY=this.y=Math.random()*sTall; } while (distanceOK (tempX, tempY)==false); this.startingX=tempX; this.startingY=tempY; } public function tick(event:TimerEvent) { if (this.canUpdatePos) { this.setXY(); } this.updateAnimation(0, false); this.updateAnimation(this.starColor, false); } public function updateAnimation(color:Number, bright:Boolean) { var brightStr:String; if (bright) { brightStr="bright"; } else { brightStr="low"; } switch (color) { case 0 : this.gotoAndStop("none"); break; case 1 : this.gotoAndStop("N" + brightStr); break; case 2 : this.gotoAndStop("A" + brightStr); break; case 3 : this.gotoAndStop("F" + brightStr); break; case 4 : this.gotoAndStop("E" + brightStr); break; case 5 : this.gotoAndStop("S" + brightStr); break; } } public function hover(event:MouseEvent):void { this.updateAnimation(this.starColor, true); this.canUpdatePos=false; } public function drop(event:MouseEvent):void { this.stopDrag(); this.x=this.startingX; this.y=this.startingY; this.updateAnimation(0, false); this.canUpdatePos=true; } public function drag(event:MouseEvent):void { this.startDrag(false); this.canUpdatePos=false; } } }

    Read the article

  • Flash AS3 - Dispatching Events from Parent Class to Child Class

    - by John Russell
    I think this is a pretty simply problem but I do not seem to be able to pull it off. Basically I have a parent class A, and a child class B. Class A instantiates class B with addChild. There is a shared object which is being updated from a java server (red5) that has an event listener attached to it in class A. I have a function in class A which will pass certain, specific updates from this shared object to class B. The problem occurs is that when class B is instantiated, the event listener from class A doesn't work anymore. I have not removed the event listener from A. Any thoughts?

    Read the article

  • External resources in Flash

    - by Eric
    Hey all. I'm working on an application that was originally intended for HTML, but I've recently concluded that the best thing to do for my purposes is to do it in Flash instead. One of the big things I need is to be able to bring in movieclips from external files and add them to my main movie at runtime (dynamic number of elements, skinning, etc.) Don't need full-on code for this, but I could use some assistance in tracking down the resources to learn how to do these things successfully. Tutorials, best practices… The usual suspects. I've been using Flash for a while now, and used to do this pretty easily in AS2, but I've had some hiccups using classes and addchild in an earlier attempt, so any help would be much appreciated. Thanks!

    Read the article

  • Flash AS3 Mysterious Blinking MovieClip

    - by Ben
    This is the strangest problem I've faced in flash so far. I have no idea what's causing it. I can provide a .swf if someone wants to actually see it, but I'll describe it as best I can. I'm creating bullets for a tank object to shoot. The tank is a child of the document class. The way I am creating the bullet is: var bullet:Bullet = new Bullet(); (parent as MovieClip).addChild(bullet); The bullet itself simply moves itself in a direction using code like this.x += 5; The problem is the bullets will trace for their creation and destruction at the correct times, however the bullet is sometimes not visible until half way across the screen, sometimes not at all, and sometimes for the whole traversal. Oddly removing the timer I have on bullet creation seems to solve this. The timer is implemented as such: if(shot_timer == 0) { shoot(); // This contains the aforementioned bullet creation method shot_timer = 10; My enter frame handler for the tank object controls the timer and decrements it every frame if it is greater than zero. Can anyone suggest why this could be happening? EDIT: As requested, full code: Bullet.as package { import flash.display.MovieClip; import flash.events.Event; public class Bullet extends MovieClip { public var facing:int; private var speed:int; public function Bullet():void { trace("created"); speed = 10; addEventListener(Event.ADDED_TO_STAGE,addedHandler); } private function addedHandler(e:Event):void { addEventListener(Event.ENTER_FRAME,enterFrameHandler); removeEventListener(Event.ADDED_TO_STAGE,addedHandler); } private function enterFrameHandler(e:Event):void { //0 - up, 1 - left, 2 - down, 3 - right if(this.x > 720 || this.x < 0 || this.y < 0 || this.y > 480) { removeEventListener(Event.ENTER_FRAME,enterFrameHandler); trace("destroyed"); (parent as MovieClip).removeChild(this); return; } switch(facing) { case 0: this.y -= speed; break; case 1: this.x -= speed; break; case 2: this.y += speed; break; case 3: this.x += speed; break; } } } } Tank.as: package { import flash.display.MovieClip; import flash.events.KeyboardEvent; import flash.events.Event; import flash.ui.Keyboard; public class Tank extends MovieClip { private var right:Boolean = false; private var left:Boolean = false; private var up:Boolean = false; private var down:Boolean = false; private var facing:int = 0; //0 - up, 1 - left, 2 - down, 3 - right private var horAllowed:Boolean = true; private var vertAllowed:Boolean = true; private const GRID_SIZE:int = 100; private var shooting:Boolean = false; private var shot_timer:int = 0; private var speed:int = 2; public function Tank():void { addEventListener(Event.ADDED_TO_STAGE,stageAddHandler); addEventListener(Event.ENTER_FRAME, enterFrameHandler); } private function stageAddHandler(e:Event):void { stage.addEventListener(KeyboardEvent.KEY_DOWN,checkKeys); stage.addEventListener(KeyboardEvent.KEY_UP,keyUps); removeEventListener(Event.ADDED_TO_STAGE,stageAddHandler); } public function checkKeys(event:KeyboardEvent):void { if(event.keyCode == 32) { //trace("Spacebar is down"); shooting = true; } if(event.keyCode == 39) { //trace("Right key is down"); right = true; } if(event.keyCode == 38) { //trace("Up key is down"); // lol up = true; } if(event.keyCode == 37) { //trace("Left key is down"); left = true; } if(event.keyCode == 40) { //trace("Down key is down"); down = true; } } public function keyUps(event:KeyboardEvent):void { if(event.keyCode == 32) { event.keyCode = 0; shooting = false; //trace("Spacebar is not down"); } if(event.keyCode == 39) { event.keyCode = 0; right = false; //trace("Right key is not down"); } if(event.keyCode == 38) { event.keyCode = 0; up = false; //trace("Up key is not down"); } if(event.keyCode == 37) { event.keyCode = 0; left = false; //trace("Left key is not down"); } if(event.keyCode == 40) { event.keyCode = 0; down = false; //trace("Down key is not down") // O.o } } public function checkDirectionPermissions(): void { if(this.y % GRID_SIZE < 5 || GRID_SIZE - this.y % GRID_SIZE < 5) { horAllowed = true; } else { horAllowed = false; } if(this.x % GRID_SIZE < 5 || GRID_SIZE - this.x % GRID_SIZE < 5) { vertAllowed = true; } else { vertAllowed = false; } if(!horAllowed && !vertAllowed) { realign(); } } public function realign():void { if(!horAllowed) { if(this.x % GRID_SIZE < GRID_SIZE / 2) { this.x -= this.x % GRID_SIZE; } else { this.x += (GRID_SIZE - this.x % GRID_SIZE); } } if(!vertAllowed) { if(this.y % GRID_SIZE < GRID_SIZE / 2) { this.y -= this.y % GRID_SIZE; } else { this.y += (GRID_SIZE - this.y % GRID_SIZE); } } } public function enterFrameHandler(Event):void { //trace(shot_timer); if(shot_timer > 0) { shot_timer--; } movement(); firing(); } public function firing():void { if(shooting) { if(shot_timer == 0) { shoot(); shot_timer = 10; } } } public function shoot():void { var bullet = new Bullet(); bullet.facing = facing; //0 - up, 1 - left, 2 - down, 3 - right switch(facing) { case 0: bullet.x = this.x; bullet.y = this.y - this.height / 2; break; case 1: bullet.x = this.x - this.width / 2; bullet.y = this.y; break; case 2: bullet.x = this.x; bullet.y = this.y + this.height / 2; break; case 3: bullet.x = this.x + this.width / 2; bullet.y = this.y; break; } (parent as MovieClip).addChild(bullet); } public function movement():void { //0 - up, 1 - left, 2 - down, 3 - right checkDirectionPermissions(); if(horAllowed) { if(right) { orient(3); realign(); this.x += speed; } if(left) { orient(1); realign(); this.x -= speed; } } if(vertAllowed) { if(up) { orient(0); realign(); this.y -= speed; } if(down) { orient(2); realign(); this.y += speed; } } } public function orient(dest:int):void { //trace("facing: " + facing); //trace("dest: " + dest); var angle = facing - dest; this.rotation += (90 * angle); facing = dest; } } }

    Read the article

1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >