![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Здраствуйте.
Мне хотелось бы добавлять на сцену чилдренов, присваивая им различные имена. (чтобы потом можно было с конкретным "bbb"+i что-то делать) Вот такая вот конструкция не работает: Подскажите, как поступают в таких случаях? |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
|
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Спасиб! Буду пробовать.
Добавлено через 3 часа 2 минуты Всё же немного непонятно. Допустим я создал несколько объектов Box на сцене с помощью цикла: for (var i:int = 0; i < 10; i++) { var tmpSprite:Sprite =new Box(); tmpSprite.name="bbb"+i; addChild(tmpSprite); } Это вроде понятно. А вот дальше, в другом месте программы, я хочу с помощью другого цикла взять элементы с именами с bbb3 по bbb6 и поменять им координату x, к примеру. (x += 100 Не работает. Что я делаю неправильно? |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
|
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Не. Не хочет работать.
Пишет вот: 1151: A conflict exists with definition tmpSprite in namespace internal. package { import flash.display.*; import flash.events.*; public class Main extends MovieClip { public var tmpSprite:Sprite; public function Main() { for (var i:int = 0; i < 10; i++) { var tmpSprite:Sprite =new Box(); tmpSprite.name="bbb"+i; addChild(tmpSprite); tmpSprite.x=100+i*50; tmpSprite.y=200; } } for (var j:int = 3; j < 7; j++) { var tmpSprite:Sprite=getChildByName("bbb"+j); tmpSprite.x+=100; } } } |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
package { import flash.display.*; import flash.events.*; public class Main extends MovieClip { public var tmpSprite:Sprite;//обявили раз public function Main() { for (var i:int = 0; i < 10; i++) { var tmpSprite:Sprite =new Box();//объявили 2 tmpSprite.name="bbb"+i; addChild(tmpSprite); tmpSprite.x=100+i*50; tmpSprite.y=200; } } for (var j:int = 3; j < 7; j++) { var tmpSprite:Sprite=getChildByName("bbb"+j);//объявили 3 tmpSprite.x+=100; } } } |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Действительно. Поправил. Оставил только в одном месте. Но не помогло. Наоборот - вывалилась целая куча ошибок.
1120: Access of undefined property tmpSprite. 1180: Call to a possibly undefined method getChildByName. 1120: Access of undefined property j. 1120: Access of undefined property tmpSprite. 1120: Access of undefined property tmpSprite. 1120: Access of undefined property j. 1120: Access of undefined property j. Прикрепляю на всякий случай исходник. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
package { import flash.display.*; import flash.events.*; public class Main extends MovieClip { var tmpSprite:MovieClip; public function Main() { for (var i:int = 0; i < 10; i++) { tmpSprite =new Box(); tmpSprite.name="bbb"+i; addChild(tmpSprite); tmpSprite.x=100+i*50; tmpSprite.y=200; } var tmpBob:DisplayObject; for (var j:int = 3; j < 7; j++) { tmpBob = getChildByName("bbb"+j); tmpBob.x+=100; } } } } |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Спасибо. Работает. Полез вчитываться.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|