![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Не стреляйте - сформулировал как мог.
![]() Беда в следующем: конструкции типа "arr[0]=new TextField()" AS3 разрешает, а конструкции типа "arr[0].txt=new Textfield()" - нет. Нерабочий код:
__________________
А я Томат. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Torero, так в AS3 не пишут. Если надо создать класс — создай его. И заканчивай писать код в кадрах.
|
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Спс. Про "new Object()" не догадался.
Еще вопросик: почему при выполнении кода на экране ничего не отображается. хотя трассировка показывает, что все гут? for(var z:uint=0; z<2; z++){
tx_arr[z]=new Object();
tx_arr[z].txt=new TextField();
tx_arr[z].txt.text="SomeText"+z;
addChild(tx_arr[z].txt);
trace(tx_arr[z].txt.text);
}
2_etc: Код в кадрах, лично я, писать и не начинал. Здесь его привел в такой форме просто для того, чтобы примером можно было легче воспользоваться если вдруг кто захочет проверить.
__________________
А я Томат. Последний раз редактировалось Torero; 20.08.2007 в 22:13. |
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Ты прав. Непонятка в другом месте, но не знаю где:
ситуация следующая: из одного класса("D") создаю экземпляр другого класса("E"). В классе "E" создаю TextField, однако на экране он не отображается. D: package {
import flash.display.Sprite;
import flash.utils.getDefinitionByName;
public class D extends Sprite {
public function D(){
var inst:Object;
var cla:Class;
cla=getDefinitionByName("E")
inst = new cla();
}
}
}
__________________
А я Томат. |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 256
|
Цитата:
|
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Работает. Спасибо.
__________________
А я Томат. |
|
|||||
|
Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
|
var tx_arr:Array=[];
function newTF(initText:String):TextField {
var txt:TextField = new TextField();
txt.text = initText;
return txt;
}
addChild(tx_arr[0] = newTF("first text"));
Я обычно хороший код пишу, не какой-нибудь там чопапалошний нерабочий... ![]()
__________________
Верить никому нельзя. Мне - можно. :) |
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Вопрос в продолжение темы...
Как при срабатывании мышиного события сослаться на родительский объект? package {
import flash.display.Sprite;
import flash.events.MouseEvent;
public class D extends Sprite {
public function D(){
var obj:Object=new Object();
obj.container=new Sprite();
addChild(obj.container);
obj.rect1=new Sprite();
obj.rect1.graphics.beginFill(0xFF0000);
obj.rect1.graphics.drawRect(0, 0, 90, 38);
obj.rect2=new Sprite();
obj.rect2.graphics.beginFill(0x0000FF);
obj.rect2.graphics.drawRect(0, 40, 90, 38);
obj.container.addChild(obj.rect1);
obj.container.addChild(obj.rect2);
obj.rect2.addEventListener(MouseEvent.MOUSE_OVER, changerect);
function changerect(event:MouseEvent):void{
trace("Rolled Over. "+event.target.parent+"; "+event.target.parent.numChildren);
event.target.x+=40;
event.target.parent.getChildByName("obj.rect1").x+=100;
}
}
}
}
------- Вопрос решил, использовав getChildAt(0), но почему getChildByName не сработал?
__________________
А я Томат. Последний раз редактировалось Torero; 21.08.2007 в 04:38. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|