PDA

Просмотр полной версии : При присвоении значения width пропадает child


sospamom
08.08.2008, 11:15
package code{
import flash.display.*;
import flash.events.*;
import flash.ui.*;
import flash.geom.*;

public class Problem extends Sprite{
public function Problem(){
//width = 300;


var border:Shape = new Shape();
border.graphics.lineStyle(1);
border.graphics.drawRect(20, 20, 100, 100);
addChild(border);
}
}
}


Если с width снять комментарий, то border пропадает. Почему?

CEBEP
08.08.2008, 11:39
а к чему относится этот width там?

sospamom
08.08.2008, 12:32
Я думаю, что width относится к экземпляру класса Problem.
Переписал код так:
package code{
import flash.display.*;
import flash.events.*;
import flash.ui.*;
import flash.geom.*;

public class Problem extends Sprite{
public function Problem(){
addEventListener(Event.ADDED_TO_STAGE,addedToStageListener);
}
private function addedToStageListener(e:Event):void {

width = 800;

var border:Shape = new Shape();
border.graphics.lineStyle(1);
border.graphics.drawRect(20, 20, 100, 100);
addChild(border);
}
}
}


Всё равно border нет.

2morrowMan
08.08.2008, 12:49
А зачем там вообще "width = 800;" ? )

В конце поставте "trace(this.scaleX);" и может поймете. )

sospamom
08.08.2008, 13:26
А зачем там вообще "width = 800;" ? )
Ну там ещё в реальной программе есть и height. Хочу в данных пределах реагировать на мышь.

В конце поставте "trace(this.scaleX);" и
может поймете. )
не смог понять

CEBEP
08.08.2008, 13:51
width сам по себе существовать не может, это свойсво.
ты шас просто зарезервирванное слово юзаешь

Alkaz
08.08.2008, 15:06
width сам по себе существовать не может, это свойсво.
ты шас просто зарезервирванное слово юзаешь

width относится к данному экземпляру класса, собственно тоже самое что и this.width .

sospamom
08.08.2008, 15:27
width сам по себе существовать не может, это свойсво.
ты шас просто зарезервирванное слово юзаешь

По моим представлениям width является свойством экземпляра класса Problem.

2morrowMan
08.08.2008, 15:42
Хочу в данных пределах реагировать на мышь.
Тогда почитайте в хелпе о Sprite.hitArea — это то что вам надо.

sospamom
08.08.2008, 16:20
Тогда почитайте в хелпе о Sprite.hitArea — это то что вам надо.

То есть мне обязательно надо чем-то залить Sprite, чтобы он мог реагировать на мышь?

mre
08.08.2008, 16:37
Пустой спрайт не может иметь ширины.

crazyone
08.08.2008, 16:43
Насколько я знаю, если абсолютно пустому(как у вас) спрайту менять значения width и height, его scaleX становится равна нулю, потому что деление на ноль и все такое:
var mc:Sprite= new Sprite();
trace(mc.scaleX);//1
mc.width=10;
trace(mc.scaleX);//0

CEBEP
08.08.2008, 17:46
я всё равно не понял, что пытаются сделать.

А прозрачным спраитом нельзя заполнить?

sospamom
09.08.2008, 15:25
я всё равно не понял, что пытаются сделать.

А прозрачным спраитом нельзя заполнить?

1) Я хочу, чтобы пустой спрайт реагировал на mousemove по ней.
2) Как залить прозрачным спрайтом?

Яски
09.08.2008, 16:13
1) Я хочу, чтобы пустой спрайт реагировал на mousemove по ней.
2) Как залить прозрачным спрайтом?
1) Как он будет реагировать на том чего нет?
2)
graphics.beginFill(0, 0);
graphics.drawRect(0,0,width, height);

sospamom
11.08.2008, 09:21
1) пустой спрайт это по-твоему не объект? :) Он же имеет width и height, значит должен реагировать :)

Яски
11.08.2008, 23:37
и чему равны его width и height?