![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2016
Сообщений: 35
|
Всем привет
У меня есть задача: На сцене должны появляться мувиклипы (МС), которыми я должен управлять(передвигать, менять цвет..). Количество появляемых МС зависит от числа в "NumericStepper". Если число 4 - появляется 4 МС, если 5 - еще один МС добавляется , если число 3 остается только 3 МС. Я хотел сделать так: сначала все МС удаляются, а затем добавляются согласно заданного числа. Добавление получилось, а удаление нет. Подскажите, где прокол. С уважением Александр. |
|
|||||
|
Регистрация: Dec 2016
Сообщений: 35
|
Сейчас
import flash.display.MovieClip; import flash.display.DisplayObject; import flash.events.MouseEvent; import flash.events.Event; import flash.ui.Mouse; import fl.controls.DataGrid; import fl.controls.Button; var i,k:int; var Kol_Dachikov=1; var Zvz:DisplayObject; var arr:Array = new Array(); var txt:String="125"; var DvMouse:int=0; var NDatch:int=0; var str1:String; // Создаем датчики function Sozd_Datcikov (){ for(i=0;i<Kol_Dachikov;i++) { var Zv:MovieClip = new zv; Zv.name="ss"+i; Zv.x=100+i*10; Zv.y=150+i*10; addChild(Zv); arr[i]=Zv.name; //trace(Zv); trace(arr[i]); trace(Zv.name); if(Zv.name==("ss"+i)) { trace ("Name="+Zv.name); } } } Sozd_Datcikov(); stage.addEventListener(MouseEvent.MOUSE_DOWN, DvigStart); stage.addEventListener(MouseEvent.MOUSE_UP, DvigStop); stage.addEventListener(MouseEvent.MOUSE_MOVE, MoveMouse); KolDatch.addEventListener(Event.CHANGE, Kol_Datchikov); function Kol_Datchikov (e:Event):void{ for(i=0;i<1;i++){ // if(Zv.name==("ss"+i)) // if (stage.contains("ss"+0)) { // removeChildAt(Zv); //Здесь я хочу удалять МС } } Kol_Dachikov=KolDatch.value; Sozd_Datcikov(); //Kol_Dachikov=8; } function MoveMouse (e:MouseEvent){ if (DvMouse==1) { NDatch=int(str1); for(i=0;i<5;i++){ k=0;; } } } function DvigStart(e:MouseEvent){ DvMouse=1; txt=e.target.name.toString(); str1=txt.substr(0,2); if((e.target.name!=null)&&(str1=="ss")) { e.target.startDrag(); txt=e.target.name.toString(); str1=txt.substr(2);} } function DvigStop (e:MouseEvent){ DvMouse=0; txt=e.target.name.toString(); str1=txt.substr(0,2); if(str1=="ss") {e.target.stopDrag();} } |
|
|||||
|
Вы создаёте Zv в этой функции
function Sozd_Datcikov (){ for(i=0;i<Kol_Dachikov;i++) { var Zv:MovieClip = new zv; Zv.name="ss"+i; Zv.x=100+i*10; Zv.y=150+i*10; addChild(Zv); arr[i]=Zv.name; //trace(Zv); trace(arr[i]); trace(Zv.name); if(Zv.name==("ss"+i)) { trace ("Name="+Zv.name); } } } function Kol_Datchikov (e:Event):void{ for(i=0;i<1;i++){ // if(Zv.name==("ss"+i)) // if (stage.contains("ss"+0)) { // removeChildAt(Zv); //Здесь я хочу удалять МС } } Kol_Dachikov=KolDatch.value; Sozd_Datcikov(); //Kol_Dachikov=8; }
__________________
There is no thing in this world that is not simple. |
|
|||||
|
Регистрация: Dec 2016
Сообщений: 35
|
Спасибо
С Вашего ответа я понял, что если МС создан в одной функции, то в другой я к нему обратиться не могу? С уважением |
|
|||||
|
Ну, технически то он создан в памяти, а не в функции, а в функции просто хранится ссылка на него(переменная). Простое решение - объявить глобально массив, в который складывать все звёзды при создании и удалять оттуда при удалении.
__________________
There is no thing in this world that is not simple. |
|
|||||
|
Регистрация: Dec 2016
Сообщений: 35
|
Но когда я хочу его подвигать МС, я к нему обращаюсь по имени и двигаю его.
Так почему я не могу по имени удалить его ? |
|
|||||
function MoveMouse (e:MouseEvent){ if (DvMouse==1) { NDatch=int(str1); for(i=0;i<5;i++){ k=0;; } } } function DvigStart(e:MouseEvent){ DvMouse=1; txt=e.target.name.toString(); str1=txt.substr(0,2); if((e.target.name!=null)&&(str1=="ss")) { e.target.startDrag(); txt=e.target.name.toString(); str1=txt.substr(2);} } function DvigStop (e:MouseEvent){ DvMouse=0; txt=e.target.name.toString(); str1=txt.substr(0,2); if(str1=="ss") {e.target.stopDrag();} }
__________________
There is no thing in this world that is not simple. |
|
|||||
|
Регистрация: Dec 2016
Сообщений: 35
|
Когда я МС присваиваю имя "ss+i", я ж могу по этому имени удалить его?
С уважением |
|
|||||
|
Зачем?
import flash.display.MovieClip; import flash.display.DisplayObject; import flash.events.MouseEvent; import flash.events.Event; import flash.ui.Mouse; import fl.controls.DataGrid; import fl.controls.Button; var i,k:int; var Kol_Dachikov=1; var Zvz:DisplayObject; var arr:Array = new Array(); var txt:String="125"; var DvMouse:int=0; var NDatch:int=0; var str1:String; // Создаем датчики function Sozd_Datcikov (){ for(i=0;i<Kol_Dachikov;i++) { var Zv:MovieClip = new zv; Zv.name="ss"+i; Zv.x=100+i*10; Zv.y=150+i*10; addChild(Zv); arr.push(Zv); //trace(Zv); trace(arr[i]); trace(Zv.name); if(Zv.name==("ss"+i)) { trace ("Name="+Zv.name); } } } Sozd_Datcikov(); stage.addEventListener(MouseEvent.MOUSE_DOWN, DvigStart); stage.addEventListener(MouseEvent.MOUSE_UP, DvigStop); stage.addEventListener(MouseEvent.MOUSE_MOVE, MoveMouse); KolDatch.addEventListener(Event.CHANGE, Kol_Datchikov); function Kol_Datchikov (e:Event):void{ while(arr.length) { removeChild(arr[0]); arr.shift(); } Kol_Dachikov=KolDatch.value; Sozd_Datcikov(); //Kol_Dachikov=8; } function MoveMouse (e:MouseEvent){ if (DvMouse==1) { NDatch=int(str1); for(i=0;i<5;i++){ k=0;; } } } function DvigStart(e:MouseEvent){ DvMouse=1; txt=e.target.name.toString(); str1=txt.substr(0,2); if((e.target.name!=null)&&(str1=="ss")) { e.target.startDrag(); txt=e.target.name.toString(); str1=txt.substr(2);} } function DvigStop (e:MouseEvent){ DvMouse=0; txt=e.target.name.toString(); str1=txt.substr(0,2); if(str1=="ss") {e.target.stopDrag();} }
__________________
There is no thing in this world that is not simple. Последний раз редактировалось ZackMercury; 20.01.2017 в 16:11. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:34. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|