![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
создаю переменню
переменная подгружает дополнительный класс как мне удалить эту переменную, что бы подгруженный дополнительный класс перестал в данный момент функционировать? |
|
|||||
|
В главном классе создаются объекты. С помощью дополнительного класса эти объекты двигаются. Значит экземпляры дополнительно класса добавляются в список отображения? Да и просто
не помог в моем случае.. Добавлено через 4 минуты попробовал вот так: но выдается ошибка: Последний раз редактировалось Dr_Bra; 02.07.2010 в 20:30. |
|
|||||
|
В таком случае надо создать метод destroy в классе, который чистит все слушатели, удаляет все из отображения (если такое есть, но в вашем случае, получается, класс расширен от Object), затем удалять экземпляр класса занулением.
__________________
тут я Последний раз редактировалось КорДум; 03.07.2010 в 02:40. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 39
|
В ошибке говорится, что класс MoveObj не может быть приведён к классу DisplayObject
Выкладывай сюда класс MoveObj. |
|
|||||
|
Lorem ipsum
|
Цитата:
![]()
__________________
Поймай яблоко 2! |
|
|||||
|
класс MoveObj:
package { import flash.events.Event; import flash.display.*; public class MoveObj { private var w:Number; private var h:Number; private static var _speedX:Number; private static var _speedY:Number; private var l1xpos:Number; private var l1ypos:Number; private var l2xpos:Number; private var l3xpos:Number; private var l3ypos:Number; public function MoveObj(stage:Stage,layer1:MovieClip,layer2:MovieClip,layer3:MovieClip) { w=stage.stageWidth; h=stage.stageHeight; _speedX=30; _speedY=60; stage.addEventListener(Event.RESIZE, res); function res(evt:Event):void { trace(h+"_высота"+" "+w+"_ширина") w=stage.stageWidth; h=stage.stageHeight; } stage.addEventListener(Event.ENTER_FRAME, checkMouse); function checkMouse(evt:Event):void { l1xpos = w/2-(stage.mouseX-w/2); l1ypos = h/2-(stage.mouseY-h/2)/2; l2xpos = w/2-(stage.mouseX-w/2)/2; l3xpos = w/2-(stage.mouseX-w*2)/3; l3ypos = h/2-(stage.mouseY-h/2)/3; layer1.y +=(l1ypos-layer1.y)/_speedY; layer1.x +=(l1xpos-layer1.x)/_speedX; layer2.y = layer1.y+(layer1.height/2)-215; layer2.x +=(l2xpos-layer2.x)/_speedX; layer3.y +=(l3ypos-layer3.y)/_speedY; layer3.x +=(l3xpos-layer3.x)/_speedX; if (layer1.y < stage.stageHeight-(layer1.height/2)) { layer1.y = stage.stageHeight-(layer1.height/2) } } } } } |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Я так понял это класс-менеджер, управляющий дисплейными объектами, но сам он таковым не является. А все что Вам нужно - это в определенный момент переставать двигать объекты. Для этого надо просто отписываться от события Event.ENTER_FRAME, чтобы не выполнялась функция checkMouse. Сделайте в нем метод с отпиской от этого события и метод для возобновления функционала, будет удобно и логично.
__________________
Reality.getBounds(this); |
|
|||||
|
в главном классе сделал переменную
так же в главном классе есть метод, который должен переключать наш checkker layer1.i1.addEventListener(MouseEvent.CLICK, one); ... private function one(evt:MouseEvent):void { trace("ONE"); checkker=true; } package { import flash.events.Event; import flash.display.*; public class MoveObj { private var w:Number; private var h:Number; private static const SPEED_X:Number=30; private static const SPEED_Y:Number=60; private var l1xpos:Number; private var l1ypos:Number; private var l2xpos:Number; private var l3xpos:Number; private var l3ypos:Number; public function MoveObj(stage:Stage,layer1:MovieClip,layer2:MovieClip,layer3:MovieClip,checkker:Boolean) { w=stage.stageWidth; h=stage.stageHeight; stage.addEventListener(Event.RESIZE, res); function res(evt:Event):void { trace(h+"_высота"+" "+w+"_ширина") w=stage.stageWidth; h=stage.stageHeight; } stage.addEventListener(Event.ENTER_FRAME, checkMouse); function checkMouse(evt:Event):void { if(checkker==true) { l1xpos = w/2-(stage.mouseX-w/2); l1ypos = h/2-(stage.mouseY-h/2)/2; l2xpos = w/2-(stage.mouseX-w/2)/2; l3xpos = w/2-(stage.mouseX-w*2)/3; l3ypos = h/2-(stage.mouseY-h/2)/3; layer1.y +=(l1ypos-layer1.y)/SPEED_Y; layer1.x +=(l1xpos-layer1.x)/SPEED_X; layer2.y = layer1.y+(layer1.height/2)-215; layer2.x +=(l2xpos-layer2.x)/SPEED_X; layer3.y +=(l3ypos-layer3.y)/SPEED_Y; layer3.x +=(l3xpos-layer3.x)/SPEED_X; if (layer1.y < stage.stageHeight-(layer1.height/2)) { layer1.y = stage.stageHeight-(layer1.height/2) } } } } } } Последний раз редактировалось Dr_Bra; 09.07.2010 в 12:28. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А когда checkker будет false?)))
Добавлено через 2 минуты И откуда функция checkMouse знает, кто такой checkker? Добавлено через 4 минуты а... она вложенная... когда же вас отучат от вложенных функций...
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:45. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| удаление класса , удаление переменной |
|
|