cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - You can subscribe to a forum, label or individual post and receive email notifications when someone posts a new topic or reply. Learn more! X

Multiple scan widget in 3D eyewear

ASM
6-Contributor
6-Contributor

Multiple scan widget in 3D eyewear

I'm having a concern regarding scan widget in 3D eyewear.

 

Is it possible to have multiple scan widgets in one project?

 

Currently I'm using 2 scan widgets, the first scanning will display first popup, and the second scanning should display second popup. But now, during second scanning, after value has been acquired, the first and second popup display simultaneously. 

 

Since 3D eyewear does not supporting popup, I'm using 3D label and 3D button for both popup.  

 

Need you guys response at your earliest convenience.

 

Thanks

11 REPLIES 11
whity
16-Pearl
(To:ASM)

Hi RahSyi,

 

Maybe it is easier to use just one scan widget. You can transfere the scanned value to your js by putting this in the js field of "acquired value" in your scan widged:

openPopup(view.wdg["scan-1"].scannedValue);

 

Then, you can use something like this in your js code:


$scope.openPopup = function(scannedValue) {

switch (scannedValue) {
case 'popup-1':
$scope.view.wdg['popup-1'].visible=true;
$scope.view.wdg['popup-2'].visible=false;
$scope.view.wdg['popup-3'].visible=false;
$scope.view.wdg['popup-4'].visible=false;
break;
case "popup-2":
$scope.view.wdg['popup-1'].visible=false;
$scope.view.wdg['popup-2'].visible=true;
$scope.view.wdg['popup-3'].visible=false;
$scope.view.wdg['popup-4'].visible=false;
break;
case "popup-3":
$scope.view.wdg['popup-1'].visible=false;
$scope.view.wdg['popup-2'].visible=false;
$scope.view.wdg['popup-3'].visible=true;
$scope.view.wdg['popup-4'].visible=false;
break;
case "popup-4":
$scope.view.wdg['popup-1'].visible=false;
$scope.view.wdg['popup-2'].visible=false;
$scope.view.wdg['popup-3'].visible=false;
$scope.view.wdg['popup-4'].visible=true;
break;
}}

 

ASM
6-Contributor
6-Contributor
(To:whity)

actually, I'm using 3DLabel and 3D buttons for popup since popup widget not available and supported in 3D eyewear. 

 

Any other solution that I can try? 

 

Thanks

whity
16-Pearl
(To:ASM)

No problem, just replace the regarding lines, e.g.:

instead of :

$scope.view.wdg['popup-1'].visible=true;

 

use:

$scope.view.wdg['label-1'].visible=true;

 

or use 3DPanels to group the widgeds to be displayed.

ASM
6-Contributor
6-Contributor
(To:whity)

I've tried the solution that you gave. But it didn't work. 

whity
16-Pearl
(To:ASM)

@sdidier : Looks like a bug to me

Symptom:

Acquiring a scan value will cause in several widget-visibilities being set to true, at least for: 3D-labels, 3D-pictures and 3D-buttons. Even having a command for setting visibility 

 

Tested on:

Vuforia 9.0.3  3D-Eyewear-Project

Browser: Chrome 90.0.4430.93;  Edge 89.0.774.57 

 

Steps to recreate:

1 create a new 3d-eyewear project

2 place scan widget and 3D-Button and assign start scan to 3D-button

3 place 1 3D-button, 1 3D-picture and one 3D-label and set all three to invisible

4 start preview and type in any scan value

 

sdidier
17-Peridot
(To:whity)

Hello all,

 

I am able to reproduce the issue in Vuforia Studio 9.0.3, in Preview and in Hololens also.

 

I added a Target Widget because it is mandatory to have an Experience who works fine in the device.

 

So, it seems a bug.

I have create a case to follow it and the most important the Jira Ticket VTS-437 to report that To R&D.

Also, this article has been created about this issue.

 

 

@whity 

 

Thanks you very much for your help. 🙂

 

Best regards,

Samuel

dsgnrClarK
16-Pearl
(To:ASM)

Widgets:

scan-1, scan-2, scan-3

3DPressButton-1, 3DPressButton-2, 3DPressButton-3

3DLabel-1, 3DLabel-2, 3DLabel-3

 

['scan-x']['scannedValue'] is Bind to ['3DLabel-x']['text']

Same thing happens here, one scanned value acquired, all labels are shown.

 

$timeout could be a workaround

$scope.app.show1 = function(){
  $timeout(function{
    $scope.view.wdg['3DLabel-1'].visible = true;
    $scope.view.wdg['3DLabel-2'].visible = false;
    $scope.view.wdg['3DLabel-3'].visible = false;
  }, 10)
}

 

ASM
6-Contributor
6-Contributor
(To:dsgnrClarK)

@dsgnrClarK,

 

Thank you for your reply.

 

I've tried your suggestion, but there's no widgets appear. 

dsgnrClarK
16-Pearl
(To:ASM)

try this

ASM
6-Contributor
6-Contributor
(To:dsgnrClarK)

got this error. 

 

ASM_0-1620086418399.png

 

dsgnrClarK
16-Pearl
(To:ASM)

updated

Top Tags