2010-08-31 1 views
1

Я бы очень хотел, чтобы точка в правильном направлении, actionscript и flashbuilder для меня были совершенно новыми, и я чувствую, что у меня есть некоторые существенные пробелы в нем, m изо всех сил пытается их подключить.Как получить доступ к переменным-потомкам после их создания

В любом случае.

Так у меня есть некоторые довольно простые круги, основанные на классе AS называется CircleA:

> Package components { 

>       import flash.display.Shape; 
>       import flash.display.Sprite; 
>     
>       public class CircleA extends Sprite{ 
>  
>     [Bindable] public var cirRadius:Number; 
>     [Bindable] public var cirX:Number; 
>     [Bindable] public var cirY:Number; 
>     [Bindable] public var cirColour:uint; 
>          
>           public function CircleA(cirRadius:Number, cirX:Number, 
> cirY:Number, cirColour:uint){ 
>      
>      this.cirRadius = cirRadius; 
>      this.cirX = cirX; 
>      this.cirY = cirY; 
>      this.cirColour = cirColour; 
>               
>               // creating a new shape instance 
>               var circle:Shape = new Shape(); 
>               // starting color filling 
>               circle.graphics.beginFill(this.cirColour , 1); 
>               // drawing circle 
>               circle.graphics.drawCircle(0 , 0 ,this.cirRadius); 
>               // repositioning shape 
>               circle.x = this.cirX;                                 
>               circle.y = this.cirY; 
>               
>               // adding displayobject to the display list 
>               addChild(circle); 
>           
>          } 
>          
>     } 
> } 

Я тогда взял несколько из них и свалили их в SpriteVisualElement компонент проекта строитель MXML вспышки:

>  <?xml version="1.0" encoding="utf-8"?> 
>  <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" 
>     initialize="init();" 
>     minWidth="955" minHeight="600"> 
>  <fx:Declarations> 
>  </fx:Declarations> 
>  <fx:Script> 
>   <![CDATA[  
>  
>    import components.*; 
>    
>    import flash.display.Shape; 
>    import flash.display.Sprite;   
>    
>    public var myCircleA:CircleA= new CircleA(15, 100, 50, 0x66990ff); 
>    public var myCircleB:CircleA= new CircleA(20, 230, 30, 0x3399ff); 
>    public var myCircleC:CircleA= new CircleA(25, 180, 90, 0x0033ff); 
>    public var myCircleD:CircleA= new CircleA(20, 50, 20, 0x0000cc); 
>    
>    private function init():void { 
>     myCircles.addChild(myCircleA); 
>     myCircles.addChild(myCircleB); 
>     myCircles.addChild(myCircleC); 
>     myCircles.addChild(myCircleD); 
>    } 
>    
>    //myCircleA.cirColour = 0x00ff33; 
>  
>   ]]> 
>  </fx:Script> 
>  
>  <s:SpriteVisualElement id = "myCircles"/> 
>        
>  
>  </s:Application> 

Теперь все это на самом деле работает хорошо, однако сейчас я хочу, чтобы создать несколько функций, которые вызывают случайный круг, чтобы изменить цвет каждые несколько секунд и изменить цветовую палитру на кнопку и т.д., но делать все это я должен иметь возможность изменить va значения, cirColour.

Как это сделать?

Мои попытки обычно заканчиваются ошибкой 1120, заявляющей, что я пытаюсь получить доступ к неопределенному свойству.

Я чувствую себя глупо.

Спасибо за ваше время.

Джош

ответ

0

дорогой Иисус, если вы используете FlashBuilder и Flex 4, почему бы не использовать силу компонентов Spark, ??

http://pastebin.com/Vs7ZuDdB

вы могли бы задать вам вопросы здесь)

+0

Пока я смотрел на это, так как я все еще чувствую, что это довольно простая концепция в Action Script и, вероятно, следует знать, как это сделать. .. Кто-нибудь знает, как я это сделаю? Спасибо. – Joshua

+0

'myCircles.getChildAt (numberOfElementAdded)'; – Eugene

+0

что, myCircles.getChildAt (numberOfElementAdded) .circolour = * некоторое число *; ? (пойдет и попробует, но не на моем компьютере) спасибо, хотя – Joshua