![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Aug 2005
Сообщений: 83
|
class testclass {
private var Arr:Array = [];
private var ExtCanvas:MovieClip;
public function testclass(place:MovieClip) {
this.ExtCanvas = place;
this.ExtCanvas.createEmptyMovieClip("Canvas", this.ExtCanvas.getNextHighestDepth());
}
public function showtext() {
if (ExtCanvas.Canvas["TextBlock"+Arr.length] == undefined) {
ExtCanvas.Canvas.createTextField("TextBlock"+Arr.length, ExtCanvas.Canvas.getNextHighestDepth(), 0, 0, 300, 30);
}
var txtBlock:TextField = ExtCanvas.Canvas["TextBlock"+Arr.length];
txtBlock.type = "dynamic";
txtBlock.multiline = true;
txtBlock.text = "npeBeg, kpacaB4er !!!";
Arr.push(txtBlock);
//
trace(txtBlock.text);
}
}
|
|
|||||
|
Регистрация: Aug 2004
Сообщений: 83
|
Спасибо! Идею понял, этот вариант работает, но он мне подсказал еще лучшее решение для моего класса, позволяющее совсем отказаться от массива и упростить код. Просмотрел класс (не этот что в топике, а рабочий, полная версия), действительно это может значительно упростить весь код (а кода там достаточно много).
![]() Весь прикол в том, что ранее я не догадался использовать конструкцию: Мувик1.Мувик2["Название_элемента"] // ---------------- public function showtext() { var j:Number = 1; ExtCanvas.Canvas.createTextField("TextBlock"+j,ExtCanvas.Canvas.getNextHighestDepth(),0,0,300,30); ExtCanvas.Canvas["TextBlock"+j].type = "dynamic";; ExtCanvas.Canvas["TextBlock"+j].multiline = true; ExtCanvas.Canvas["TextBlock"+j].text = "npeBeg, kpacaB4er !!!"; } Всем спасибо! ![]() |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 83
|
а ты гдето уже опередил j элемент массива ? обращаться к несуществуемому элеменету как минимум не корректно
удачи |
|
|||||
|
Регистрация: Aug 2004
Сообщений: 83
|
да, с этим все ок
Последний раз редактировалось Danilishin; 23.03.2006 в 19:20. |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 83
|
я не о том
я просто предпологаю что ты создаешь Н текстовых полей, и для себя любомого складываешь их в массив, что у тебя было в первоночальном коде, ты просто говорил arr[j]=чемуто там, а масив перед этим был у тебя пустой, это не правильно и писать так не следует и вот мне почемуто показалось что ты чтото подобное написал гдето выше, вот решил предупредить ![]() |
|
|||||
|
Регистрация: Aug 2004
Сообщений: 83
|
Цитата:
var Arr:Array = new Array(); В рабочей версии там все нормально ![]() Спасибо за замечание. |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 83
|
var Arr:Array = []; можно и так не суть важно , у тебя длина массива попрежнему была ровна 0, а ты уже обращаешься к j элементу как будто он уже сто лет там был, еслиб ты написал так
var Arr:Array = [new TextField(..........)]; то мог бы обращаться к 0 элементу массива... ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:43. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|