Просмотр полной версии : При присвоении значения 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 пропадает. Почему?
а к чему относится этот 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);" и
может поймете. )
не смог понять
width сам по себе существовать не может, это свойсво.
ты шас просто зарезервирванное слово юзаешь
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, чтобы он мог реагировать на мышь?
Пустой спрайт не может иметь ширины.
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
я всё равно не понял, что пытаются сделать.
А прозрачным спраитом нельзя заполнить?
sospamom
09.08.2008, 15:25
я всё равно не понял, что пытаются сделать.
А прозрачным спраитом нельзя заполнить?
1) Я хочу, чтобы пустой спрайт реагировал на mousemove по ней.
2) Как залить прозрачным спрайтом?
1) Я хочу, чтобы пустой спрайт реагировал на mousemove по ней.
2) Как залить прозрачным спрайтом?
1) Как он будет реагировать на том чего нет?
2)
graphics.beginFill(0, 0);
graphics.drawRect(0,0,width, height);
sospamom
11.08.2008, 09:21
1) пустой спрайт это по-твоему не объект? :) Он же имеет width и height, значит должен реагировать :)
и чему равны его width и height?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.